更多Spring文章,欢迎点击 一灰灰Blog-Spring专题java
前面两篇文章,分别介绍了如何获取配置信息,区分多环境的配置支持,配置信息的优先级问题,那么掌握这些是否就足够了呢?git
application-xxx.properties
)中的配置信息呢?<!-- more -->github
前面在使用多环境的配置时,经过设置 spring.profiles.active
来选择加载具体的配置文件,若是没有精神洁癖的话,就把自定义的配置文件加上application-
前缀,而后用这种方式来加载,固然是可行的spring
除此以外呢?app
PropertySource
注解这个注解能够指定你想加载的配置文件,而后读取其中的配置信息, 使用姿式也相对简单dom
如在根目录下有配置文件 biz.properties
spring-boot
biz.token=mytoken biz.appKey=asdf biz.appVersion=1 biz.source=xxx.yyy
对应的加载配置的bean为学习
package com.git.hui.boot.properties.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; /** * Created by @author yihui in 15:08 18/9/19. */ @Data @Configuration @PropertySource({"classpath:biz.properties"}) @ConfigurationProperties(prefix = "biz") public class OtherProperBean { private String token; private String appKey; private Integer appVersion; private String source; }
说明测试
@PropertySource({"classpath:biz.properties"})
: 从根目录下,加载配置文件biz.properties@ConfigurationProperties(prefix = "biz")
: 获取配置文件中,前缀为biz的配置测试相关就不写了,有兴趣的直接本身尝试便可ui
PropertySource
注解不生效问题接下来须要重点说一下的是,在我本身的测试中,最开始个人配置文件都是yml格式,而后发现上面的配置始终不生效,也不知道啥缘由;而后把配置文件换成properties文件以后,就能够了;
至于为何会有这个问题,先留着,后续有时间深刻研究一下
前面的配置中,使用${random.int}
这种东西,啥意思?
在配置文件中,支持经过 ${random} 来生成一些随机值
常见的几种用法以下
# 随机字符串 com.kfit.blog.value=${random.value} # 随机int com.kfit.blog.number=${random.int} # 随机long com.kfit.blog.bignumber=${random.long} # 10之内的随机数 com.kfit.blog.test1=${random.int(10)} # 10-20的随机数 com.kfit.blog.test2=${random.int[10,20]}
在配置中,一个参数须要引用另外一个配置参数,能够怎么处理?
${xxx}
来表示引用配置 xxx的值如
biz.token=mytoken biz.appKey=asdf biz.appVersion=1 biz.source=xxx.yyy # uuid的值为 mytoken#asdf biz.uuid=${biz.token}#${biz.appKey}
一灰灰的我的博客,记录全部学习和工做中的博文,欢迎你们前去逛逛
尽信书则不如,已上内容,纯属一家之言,因我的能力有限,不免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
一灰灰blog
知识星球