Seal^_^ 2025-12-09 10:14 采纳率: 95.4%
浏览 4
已采纳

@Conditional的条件评估顺序? 多个条件注解的联合判断逻辑。

@Conditional的条件评估顺序? 多个条件注解的联合判断逻辑。

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-12-09 10:23
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    @Conditional条件评估顺序和联合判断逻辑

    在Spring框架中,@Conditional注解用于条件评估,决定是否激活某个Bean或配置。多个条件注解的联合判断逻辑如下:

    1. 顺序: Spring会按照条件注解的顺序进行评估。如果某个条件注解返回false,后续的条件注解不会被评估。
    2. 逻辑: 多个条件注解的逻辑是与的(AND),即所有条件注解都必须返回true,才会激活Bean或配置。

    例如:

    @Configuration
    public class AppConfig {
     
        @Bean
        @ConditionalOnProperty(name = "db.enabled", havingValue = "true")
        @ConditionalOnClass(name = "com.example.MyClass")
        public DataSource dataSource() {
            // ...
        }
    }
    

    在上面的例子中,dataSource() Bean只有当db.enabled属性为true且com.example.MyClass类存在时才会被激活。

    注意: 如果你需要使用或的(OR)逻辑,可以使用@ConditionalOnProperty注解的matchIfMissing属性设置为true。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 今天
  • 创建了问题 12月9日