@Conditional的条件评估顺序? 多个条件注解的联合判断逻辑。
3条回答 默认 最新
阿里嘎多学长 2025-12-09 10:23关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
@Conditional条件评估顺序和联合判断逻辑
在Spring框架中,@Conditional注解用于条件评估,决定是否激活某个Bean或配置。多个条件注解的联合判断逻辑如下:
- 顺序: Spring会按照条件注解的顺序进行评估。如果某个条件注解返回false,后续的条件注解不会被评估。
- 逻辑: 多个条件注解的逻辑是与的(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。解决 无用评论 打赏 举报