springboot:condition

public class LinuxCondition implements Condition{

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        return context.getEnvironment().getProperty("os.name").contains("Linux");  }
}
=============================================
public class MacCondition implements Condition{

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        return context.getEnvironment().getProperty("os.name").contains("Mac");  }
}
=============================================
public class WindowsCondition implements Condition{

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        return context.getEnvironment().getProperty("os.name").contains("Windows");
    }
}
=============================================
@Configuration
public class MyConfiguration {

    @Bean(name="emailerService")
    @Conditional(WindowsCondition.class)
    public Object windowsEmailerService(){
        return new Object();
    }

    @Bean(name="emailerService")
    @Conditional(LinuxCondition.class)
    public Object linuxEmailerService(){
        return new Object();
    }

    @Bean(name="emailerService")
    @Conditional(MacCondition.class)
    public Object macEmailerService(){
        return new Object();
    }
}

猜你喜欢

转载自samson870830.iteye.com/blog/2386875
今日推荐