1.@Condition条件注解
满足指定条件,则会加载对应的实例或者类。该注解可以作用于类和方法上。
@Condition类属性值中,对应的类,必须是实现Condition接口的类
2.实例
配置类:
@Configuration
public class ConditionalConfig {
/**
* @Conditional({Condition}) : 按照一定的条件进行判断,满足条件给容器中注册bean
*
* 如果系统是windows,给容器中注册("bill")
* 如果是linux系统,给容器中注册("linus")
*/
@Conditional(WindowsCondition.class)
@Bean("bill")
public Person bill(){
return new Person("111","Bill Gates");
}
@Conditional(LinuxCondition.class)
@Bean("linus")
public Person linus(){
return new Person("222","linus");
}
}
可以通过设置虚拟机dos名称来改变系统名称。