Springboot注解之@ConditionalOnProperty

更新时间:2023-05-19 23:09:39 阅读: 评论:0

Springboot注解之@ConditionalOnProperty
@ConditionalOnProperty 注解源码:
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Documented
@Conditional(OnPropertyCondition.class)
public @interface ConditionalOnProperty {吃鹅肉有什么好处和坏处
String[] value() default {};
String prefix() default "";
String[] name() default {};
教职工代表大会制度
String havingValue() default "";
boolean matchIfMissing() default fal;
boolean relaxedNames() default true;
}
@ConditionalOnProperty 注解中这些属性是什么意思,作⽤是什么,我们分下⾯⼏种情况演⽰
1、如果不给 @ConditionalOnProperty 注解赋值
@Configuration
@ConditionalOnProperty
public class SpringbootConfig {
@Bean("mango")
涪水关
public Mango mango(){
return new Mango("mango","黄⾊",6.00);
}
@Bean("watermelon")
public Watermelon watermelon(){
return new Watermelon("Watermelon","原谅⾊",3.0);
}
}
启动的时候就会报错,根据提⽰可以得出,必须要配置出 name 或 value 属性
2、只配置 value 属性(如果只有⼀个 value 属性,那么 value 可以省略不写)
@Configuration
@ConditionalOnProperty(value="favourite-tag")
public class SpringbootConfig {
@Bean("mango")
耿美动漫public Mango mango(){
return new Mango("mango","黄⾊",6.00);
}
@Bean("watermelon")
public Watermelon watermelon(){
return new Watermelon("Watermelon","原谅⾊",3.0);
}
}
如果你在 springboot 的配置⽂件 application.properties 中配置了 favourite-tag 这个节点,那么 @ConditionalOnProperty 这个注解的判断条件成⽴,这个类上⾯标注的@Configuration 注解才会⽣效
下⾯这三种情况都成⽴
// 经测试条件成⽴
favourite-tag
// 经测试条件成⽴
favourite-tag=
// 经测试条件成⽴
favourite-tag=fruit
3、prefix、name、havingValue
@Configuration
@ConditionalOnProperty(prefix = "xiaomaomao.favourite",name="fruit",havingValue = "watermelon")
public class SpringbootConfig {
@Bean("mango")
public Mango mango(){
return new Mango("mango","黄⾊",6.00);
五行属水的配饰}
@Bean("watermelon")
public Watermelon watermelon(){
左耳听见
return new Watermelon("Watermelon","原谅⾊",3.0);
}
}
前缀为 xiaomaomao.favourite , 属性名称为 fruit ,那么拼接起来就是 xiaomaomao.favourite.fruit ,千万要注意 prefix 不能单独使⽤,它必须搭配name 才代表⼀个完整的 value.
havingValue 的意思是必须要有的值为 watermelon
这⾥的意思是 application.properties 中必须要配置 xiaomaomao.favourite.fruit 标签,并且该标签的值必须为 watermelon ,否则判断条件不成⽴xiaomaomao.favourite.fruit=watermelon
四、matchIfMissing
如果 matchIfMissing=true ,那么就不管 application.properties 配置⽂件中有没有配置 abled 标签,判断条件都成⽴
@ConditionalOnProperty(prefix = "whitelabel", name = "enabled", matchIfMissing = true)
例如,下⾯这个判断条件
如果没有配置 xiaomaomao.favourite.fruit 标签,由于 matchIfMissing = true ,所以判断条件也是成⽴的
金匮肾气丸的作用
但是如果配置了 xiaomaomao.favourite.fruit 标签,那么标签的值就必须为 watermelon古装漫画图片
@ConditionalOnProperty(prefix="xiaomaomao.favourite",name = "fruit",havingValue = "watermelon",matchIfMissing = true)

本文发布于:2023-05-19 23:09:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/700129.html

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

标签:条件   配置   判断
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图