| 注解 | 说明 |
| @ConditionalOnProperty | 配置文件中存在对应的属性,才声明Bean |
| @ConditionalOnMissingBean | 当不存在当前类型的Bean是,才声明该Bean |
| @ConditionalOnClass | 当前环境存在指定的这类时,才声明该Bean |
@Bean
@ConditionalOnProperty(prefix = "firstTable",name = {"id","name"})
public FirstTable firstTable(@Value("${firstTable.id}") String id,@Value("${firstTable.name}") String name) {
FirstTable firstTable = new FirstTable();
firstTable.setId(Integer.valueOf(id));
firstTable.setName(name);
return firstTable;
}
@Bean
@ConditionalOnMissingBean(FirstTable.class)
public RegisterBean registerBean() {
return new RegisterBean();
}
@Bean
//如果当前环境中存在name指定类,则注入,否则不注入
@ConditionalOnClass(name = "com.lvpeng.springbean.common.RegisterBean")
public Demo1 demo1() {
return new Demo1();
}
@ConditionalOnProperty(prefix = "firstTable",name = {"id","name"})
解析:前缀“firstTable”,并且下面配置"id","name",才会声明Bean
@ConditionalOnMissingBean(FirstTable.class)
解析:FirstTable类没有注册,才会注册RegisterBean类
@ConditionalOnClass(name = "com.lvpeng.springbean.common.RegisterBean")
解析:如果注入RegisterBean,也会注入Demo1,否则都不注入
除了这几个,还有很多其他的,感兴趣的可以自己查找一下
3万+

被折叠的 条评论
为什么被折叠?



