@Conditional的使用及使用场景

更新时间:2023-07-03 01:41:56 阅读: 评论:0

@Conditional的使⽤及使⽤场景
@Conditional的使⽤
作⽤:根据条件,决定类是否加载到Spring Ioc容器中,在SpringBoot中有⼤量的运⽤
应⽤场景:在⼀些需要条件满⾜才是实例化的类中,使⽤此注解,我曾经在项⽬中需要根据不同的场景使⽤不同的mq中间件的时候使⽤过,在mq的实例化bean上,加上此注解,根据配置⽂件的不同,来决定这个bean是否加载⾄ioc容器中。
使⽤⽅法
1. 实现Conditional接⼝, 实现matches⽅法。
public class MqExistsCondition implements Condition{
@Override
public boolean matches(ConditionContext context,AnnotatedTypeMetadata metadata)    {
Environment environment = Environment();
上海网球培训
//从这⾥获取配置⽂件中 active 的值,根据当前的active值决定是否加载类wsdl
expen>元音辅音String[] activeProfiles = ActiveProfiles();
for (String active : activeProfiles) {
if(active.equals(ActiveEnum.Active().toString())){
return true;
}
}
return fal;
}
floccinaucinihilipilification}
2. 在需要判断条件的bean上,加上**@Conditional(TestExistsCondition.class) **即可在满⾜条件的时候加载对应的类。
@Bean
@Conditional(TestMqExistsCondition.class)动感英语
public TestBean getTestBean(){
TestBean testBean = new TestBean();
return testBean;
bec商务英语}
其他派⽣的的conditional
@ConditionalOnClass
如果此class不存在
@ConditionalOnMissingBean
只有对应的ban在系统中都没有被创建,它修饰的初始化代码块才会执⾏,⽤户⾃⼰⼿动创建的bean优先
@ConditionalOnBean
仅仅在当前上下⽂中存在某个对象时,才会实例化⼀个Bean。745780翻译出来是什么意思
gallop@ConditionalOnClass
某个class位于类路径上,才会实例化⼀个Bean
@ConditionalOnExpression
当表达式为true的时候,才会实例化⼀个Bean。
⽐如:
@ConditionalOnExpression("true")
@ConditionalOnExpression("${abled:fal}")
ccic@ConditionalOnMissingBean
仅仅在当前上下⽂中不存在某个对象时,才会实例化⼀个Bean
@ConditionalOnMissingClass
某个class类路径上不存在的时候,才会实例化⼀个Bean
@ConditionalOnNotWebApplication
不是web应⽤

本文发布于:2023-07-03 01:41:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/165330.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时候   加载   条件   是否   创建   存在   决定
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图