版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhou920786312/article/details/89419034
声明:代码是JavaEE开发的颠覆者 Spring Boot实战代码中的,我买了这书,并练习
public interface ListService {
public String show();
}
public class LinuxListService implements ListService{
@Override
public String show() {
return "linux";
}
}
public class WindowsListService implements ListService {
@Override
public String show() {
return "windows";
}
}
------------------
@Configuration
public class ConditionConifg {
@Bean
@Conditional(WindowsCondition.class) //1如果是wind系统创建对应的bean
public ListService windowsListService() {
return new WindowsListService();
}
@Bean
@Conditional(LinuxCondition.class) //2如果是Linux系统创建对应的bean
public ListService linuxListService() {
return new LinuxListService();
}
}
----------------
public class LinuxCondition implements Condition {
@Override
public boolean matches(ConditionContext context,
AnnotatedTypeMetadata metadata) {
return context.getEnvironment().getProperty("os.name").contains("Linux");
}
}
public class WindowsCondition implements Condition {
@Override
public boolean matches(ConditionContext context,
AnnotatedTypeMetadata metadata) {
return context.getEnvironment().getProperty("os.name").contains("Windows");
}
}
------------------
public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(ConditionConifg.class);
ListService listService = context.getBean(ListService.class);
System.out.println(context.getEnvironment().getProperty("os.name")
+ "---------"
+ listService.show());
context.close();
}
}