@ConditionalOnMissingBean和@ConditionalOnBean作用是相反的
主要介绍@ConditionalOnMissingBean
@Configuration
public class RedisConfig {
@Bean
@ConditionalOnMissingBean(name="redisTemplate")
public RedisTemplate<Object,Object> redisTemplate(
RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {
//new一个Redis客户端
RedisTemplate<Object,Object> template = new RedisTemplate<>();
//将配置类的信息自动配置进来
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
上面的方法上@ConditionalOnMissingBean表示在Spring容器中如果有一个Bena的name是redisTemplate那将不需要再执行被此注解修饰的代码块,也就是此方法。
注意 :@ConditionalOnMissingBean只能在@Bean 注释的方法上使用,不能再@Component 注释的类上使用。