ConditionalOnProperty的使用
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
@Conditional({OnPropertyCondition.class})
public @interface ConditionalOnProperty {
String[] value() default {}; //数组,获取对应property名称的值,与name不可同时使用 String prefix() default "";//property名称的前缀,可有可无 String[] name() default {};//数组,property完整名称或部分名称(可与prefix组合使用,组成完整的property名称),与value不可同时使用 String havingValue() default "";//可与name组合使用,比较获取到的属性值与havingValue给定的值是否相同,相同才加载配置 boolean matchIfMissing() default false;//缺少该property时是否可以加载。如果为true,没有该property也会正常加载;反之报错 boolean relaxedNames() default true;//是否可以松散匹配,至今不知道怎么使用的
}
@Configuration
@ConditionalOnProperty(value = "parentName.sonName")
public class parentNameConfig {
}
.yml配置如下:
parentName:
sonName: true //正常
parentName:
sonName: //正常,空字符时
parentName:
sonName: false //失败
parentName:
sonName: null //正常
parentName:
sonName: 123 //正常 把第二行换成:
@ConditionalOnProperty(value = "parentName.sonName",havingValue = "123")
.yml配置如下:
parentName:
sonName: 123 //正常
parentName:
sonName: 1234 //失败
parentName:
sonName: false //失败 把第二行换成:
@ConditionalOnProperty(value = "parentName.sonName",havingValue = "false")
.yml配置如下:
parentName:
sonName: false //正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName",name = "sonName",havingValue = "123")
.yml配置如下:
parentName:
sonName: 123 //正常
parentName:
sonName: 1234 //失败,与havingValue给定的值不一致 把第二行换成:
@ConditionalOnProperty(prefix = "parentName",name = "sonName",havingValue = "123",matchIfMissing = true)
.yml配置如下:
不配置相关参数 //正常,当matchIfMissing = true时,即使没有该parentName.sonName属性也会加载正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName",name = "sonName",havingValue = "123",matchIfMissing = false) //这里matchIfMissing默认为false,写不写都行
.yml配置如下:
不配置相关参数 //失败,当matchIfMissing = false时,必须要有对应的property
parentName:
sonName: 123 //正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName.", name = "sonName")//prefix带了.(点)
.yml配置如下:
parentName:
sonName: true //正常
parentName:
sonName: 123 //正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName",value = {"sonName2"},name = {"sonName"})
.yml配置如下:
parentName:
sonName: true //项目Debug启动失败,The name and value attributes of @ConditionalOnProperty are exclusive
//@ConditionalOnProperty的name和value属性是互斥的,不能同时出现 把第二行换成:
@ConditionalOnProperty(prefix = "parentName",name = {"sonName"})
.yml配置如下:
parentName:
sonName: true //正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName",name = {"sonName","flag"}) //name中的属性需要两个都存在且都不为false才会加载正常
.yml配置如下:
parentName:
sonName: true
flag: true //正常
parentName:
sonName: true
flag: 123 //正常
parentName:
sonName: true
flag: false //失败
parentName:
sonName: false
flag: false //失败 把第二行换成:
@ConditionalOnProperty(prefix = "parentName", name = {"sonName", "flag"}, havingValue = "false")
parentName:
sonName: false
flag: false //正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName", name = {"sonName", "flag"}, havingValue = "123")//parentName.sonName和parentName.flag的值都要与havingValue的一致才行
parentName:
sonName: 123
flag: 1234 //失败
parentName:
sonName: 123
flag: 123 //正常
parentName:
sonName: 123 //失败,缺少parentName.flag 把第二行换成:
@ConditionalOnProperty(prefix = "parentName", name = {"sonName", "flag"}, havingValue = "123",matchIfMissing = true)//matchIfMissing = true允许缺少
parentName:
sonName: 123 //正常
.yml配置如下:
不配置相关参数 //正常 把第二行换成:
@ConditionalOnProperty(prefix = "parentName", name = {"sonName", "flag"}, havingValue = "123")
.yml配置如下:
不配置相关参数 //失败
- 1. Makefile中使用$$的使用
- 2. QMap的key的使用 value的使用
- 3. android中ProgressBar的使用SeekBar的使用和RatingBar的使用
- 4. DoxyGEN 的使用与Graphviz 的使用
- 5. Preference的使用(3) --- 子类的使用
- 6. Libgdx的使用(9)——Box2d的使用
- 7. HttpWatch的使用7.0.23的使用
- 8. CTransparentStatic类的使用 CButton类的使用
- 9. SVN 的使用(二) Eclipse 中的使用
- 10. Collector的使用和MultiReader的使用
ConditionalOnProperty的使用的更多相关文章
- Spring ConditionalOnProperty
Spring Annotation @ConditionalOnProperty spring doc解释 @Conditional: Indicates that a component is on ...
- ConditionalOnProperty
配置Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效 1.matchIfMissing属性:从application.properties ...
- @ConditionalOnProperty 详解
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) @Documented @Con ...
- 配置Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效
Spring boot中有个注解@ConditionalOnProperty,这个注解能够控制某个configuration是否生效. 具体操作是通过其两个属性name以及havingValue来实现 ...
- What is purpose of @ConditionalOnProperty annotation?
http://stackoverflow.com/questions/26394778/what-is-purpose-of-conditionalonproperty-annotation **** ...
- @ConditionalOnProperty来控制Configuration是否生效
1. 简介 Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效 2. 说明 @Retention(RetentionPolicy.RUNTI ...
- @ConditionalOnProperty注解
一 源码解析 查看ConditionalOnProperty的源码 package org.springframework.boot.autoconfigure.condition; import j ...
- Spring Boot中@ConditionalOnProperty使用详解
在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能. Spring Boot中的使用 在Spring Boot的源 ...
- @Conditional 和 @ConditionalOnProperty
@ConditionalOnProperty https://blog.csdn.net/dalangzhonghangxing/article/details/78420057 @Condition ...
- Springboot @ConditionalOnProperty注解
最近看了一段代码其中用到了@ConditionalOnProperty注解,直接没有了解过这个注解,今天看到了顺便了解一下 具体代码如下 @Configuration public class Web ...
随机推荐
- TensorFlow基本计算单元——变量
# -*- coding: utf-8 -*- import tensorflow as tf a = 3 # 创建变量 w = tf.Variable([[0.5, 1.0]]) #行向量 x = ...
- spark streaming 1: SparkContex
StreamingContext 和SparkContex的用途是差不多的,作为spark stream的入口,提供配置.生成DStream等功能. 总体来看,spark stream包括如下模块: ...
- TCP/IP,Http,Socket的区别
大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用 ...
- nodejs之静态文件托管、 路 由、EJS 模板引擎、GET、POST
1.静态文件托管 静态文件托管:是指对于一个js方法进行封装,提高代码可读性 //fs模块 var fs=require('fs'); //path模块 var path=require('path' ...
- 阶段3 2.Spring_05.基于XML的IOC的案例1_4 注解IOC案例-把自己编写的类使用注解配置
注解改造案例 复制之前的xml配置的pom.xml里面的依赖. 复制com文件 bean.xml配置文件也拷贝过来 测试类也复制过来 开始基于注解的IOC配置 右键项目,选择maven.选择更新 更新 ...
- 三十二:数据库之SQLAlchemy.query函数可查询的数据和聚合函数
准备工作 from sqlalchemy import create_engine, Column, Integer, String, Floatfrom sqlalchemy.ext.declara ...
- 监控Linux服务器上python服务脚本
提供给公司使用的测试平台这两天频繁地挂掉,影响到相关同事的正常使用,决定在服务器上写个监控脚本,监控到服务挂了就启动起来,一分钟检查一次.注:后台服务使用的是python.监控脚本如下: NUM=`p ...
- Python字符和字符值(ASCII或Unicode码值)转换方法
Python字符和字符值(ASCII或Unicode码值)转换方法 这篇文章主要介绍了Python字符和字符值(ASCII或Unicode码值)转换方法,即把字符串在ASCII值或者Unicode值之 ...
- git 本地代码提交至远程master分支解决方法
git 提交代码,本地新建一个my分支,不从本地master分支直接上传,而是先从本地my分支上提交至本地master分支,然后本地master提交至远程master分支上.前提是远程只有一个mast ...
- 模糊查询基于select遍历json文件自动填充的实现
HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...