`

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();
    }
}
分享到:
评论

相关推荐

    springboot之三:原理分析之自动配置condition

    了解了条件化配置的基本原理后,我们可以通过`springboot-condition`这个压缩包中的文件来进一步研究和实践。这些文件可能包含了示例代码或者Spring Boot自动配置的相关源码,可以帮助我们更深入地理解条件判断如何...

    springboot通过@Condition注解类型完成加载配置内容

    通过@Bean和@Condition 注解自定义对于的condition里面根据自定义的条件实现指定类注入到spring中;@ConditionalOnProperty可以根据配置文件中的 属性值不同将不同的类注入到spring中 该资源中案例完整,代码简单移动

    spring缓存机制-根据condition加入缓存(三)

    本篇文章将详细讲解如何利用`condition`属性来控制哪些数据可以被缓存,以实现更加精细化的缓存策略。 ### 一、Spring缓存概述 Spring框架提供了一种统一的缓存抽象,支持多种缓存实现,如EhCache、Hazelcast、...

    springboot源码思维导图

    4. `Condition`和`@Conditional`:SpringBoot的条件注解机制,允许Bean的创建基于某些条件,例如类路径中是否存在某个文件或类。 四、源码学习的重要性 理解SpringBoot源码有助于开发者深入掌握其内部工作机制,...

    springboot复习

    自定义条件类需实现 Condition 接口。 六、组合注解和元注解 组合注解是 Spring Boot 中的一种机制,用于组合多个注解来实现某一个特定的功能。元注解是指对其他注解的注解,例如@EnableAsync 就是一个元注解。 ...

    SpringBoot 33道面试题和答案.docx

    - 无代码生成和XML配置:使用条件注解@Condition和依赖传递解析机制。 4. **开发工具(DevTools)**: DevTools是SpringBoot的开发辅助模块,可实现热部署,即代码变更后无需重启服务器,系统会自动检测并应用...

    springboot 基于spring-kafka动态创建kafka消费者

    @KafkaListener(topics = "${kafka.topic}", groupId = "${kafka.group.id}", condition = "@dynamicConsumerEnabled") public void listen(String message) { System.out.println("Received message: " + ...

    springboot-freemarker-master.rar_freemarker_springboot

    - `<#if condition>`...`</#if>`:条件判断。 - `<#list items as item>`...`</#list>`:遍历列表。 - `${user?cap_first}`:首字母大写转换。 - `${date?string('yyyy-MM-dd HH:mm:ss')}`:日期格式化。 7. **...

    springboot整合mybatis,接口返回值利用pagehelper实现分页

    SELECT * FROM user WHERE condition1 = #{param1} AND condition2 = #{param2} ``` 现在,我们可以在Service层中调用Mapper接口,并利用PageHelper实现分页: ```java @Service public class UserService { ...

    SpringBoot事件发布及订阅详解含代码示例(值得珍藏)

    SpringBoot事件发布与订阅机制是Spring框架中一种有效的通信方式,它基于观察者模式,使得应用程序组件可以在不直接相互依赖的情况下进行通信。本文将深入探讨ApplicationEvent、ApplicationListener以及@Event...

    SpringBoot mybatis 乐观锁重试机制代码实现

    SpringBoot mybatis 乐观锁重试机制代码实现 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。...

    基于SpringBoot核心原理(自动配置、事件驱动、Condition)

    在本文中,我们将深入探讨SpringBoot的核心原理,主要包括自动配置、事件驱动和Condition。首先,让我们从SpringBoot的启动原理开始。 启动原理: SpringBoot的启动过程相对简洁,主要是因为其内置了Tomcat服务器。...

    spring-boot-demo:springboot 2.1+整合各种技术

    springboot 2.0+整合各种技术 点击添加springboot全系列技术交流qq群: 所有的测试用例均在springboot默认生成的测试文件夹下的测试类里 √:完结“”:正在更×:待更 模块快速预览: :常见的设计模式:观察者...

    springboot 使用spring cache缓存 和 缓存数据落地到redis

    \n\n```java\n@SpringBootApplication\n@EnableCaching\npublic class SpaceAdminSystemApplication {\n public static void main(String[] args) {\n SpringApplication.run(SpaceAdminSystemApplication.class, ...

    SpringBoot中整合Thymeleaf示例代码

    - **条件表达式**:`th:if`和`th:unless`用于条件判断,例如`th:if="${condition}"`。 - **迭代表达式**:`th:each`用于遍历集合,如`th:each="item : ${items}"`。 4. **创建Controller** - 创建一个`@...

    springboot-pageHelper.zip--mybatis分页

    在IT行业中,MyBatis和SpringBoot是两个非常重要的框架,它们被广泛应用于构建高效、灵活的Java web应用。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,而SpringBoot则简化了Spring应用...

    springboot构建自己的starter.docx

    import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @...

Global site tag (gtag.js) - Google Analytics