@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 註釋的類上使用。