Spring —— 条件加载注解@ConditionalOnxxx

54 篇文章 1 订阅

问题

在项目构建时,需要某些bean满足某种条件才加载。如何开发呢?

解决

使用@Conditional相关注解即可。

总结

注解

作用

@ConditionalOnProperty

application.properties 或 application.yml中是否有满足条件的配置

@ConditionalOnBean

Bean 已经存在应用上下文时才会加载

@ConditionalOnMissingBean

Bean 不存在应用上下文时才会加载

@ConditionalOnClass

某个类存在于 classpath 中才加载

@ConditionalOnMissingClass

某个类不存在于 classpath 中才加载

@ConditionalOnExpression

当条件为true时才加载

@ConditionalOnSingleCandidate

只有指定类已存在于 BeanFactory 中,并且可以确定单个

@ConditionalOnResource

加载的 bean 依赖指定资源存在于 classpath 

@ConditionalOnJndi

只有指定的资源通过 JNDI 加载后才加载 bean

@ConditionalOnJava

只有运行指定版本的 Java 才会加载 Bean

@ConditionalOnWebApplication 

只有运行在 web 应用里才会加载这个 bean

@ConditionalOnNotWebApplication

只有运行在非 web 应用里才会加载这个 bean

@ConditionalOnCloudPlatform

只有运行在指定的云平台上才加载指定的 bean,CloudPlatform 是 org.springframework.boot.cloud 下一个 enum 类型的类

使用示例

 @ConditionalOnProperty

application.properties 或 application.yml中是否有满足条件的配置

配置文件

abc.dddddd=true

Java

@ConditionalOnProperty(prefix = "abc",name = "dddddd",havingValue = "true")

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇宙超级无敌程序媛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值