Seal^_^ 2025-12-09 10:14 采纳率: 72.6%
浏览 3

@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。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月9日