// 配置类
@Configuration
public class AppConfig {
@Bean
public User user1(){
return new User();
}
@Bean
public User user2(){
return new User();
}
}
上面的代码,通过启动测试类,会将user1和user2注入到容器,可以看到打印结果如下:
现在需要根据操作系统来进行条件注入,Windows系统下注入user1,Linux系统下注入user2,则需要实现Condition接口,并重写其matches方法来构造判断条件
- 实现Condition接口:Windows系统判断条件
// Windows系统判断条件
public class WindowsCondition implements Condition {
/**
-
@description TODO
-
@author ONESTAR
-
@date 2021/2/10 10:56
-
@param conditionContext:判断条件,能使用的上下问环境
-
@param annotatedTypeMetadata:注释信息
-
@throws
-
@return boolean
*/
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
// 获取当前环境
Environment environment = conditionContext.getEnvironment();
// 判断是否是Windows系统
String property = environment.getProperty(“os.name”);
if (property.contains(“Windows”)){
return true;
}
return false;
}
}
- 实现Condition接口:Linux系统判断条件
// Linux系统判断条件
public class LinuxCondition implements Condition {
/**
-
@description 判断操作系统是否是Linux系统
-
@author ONESTAR