概述
spring boot 配置文件(实现配置项装载到静态变量中)
读取默认配置文件
定义javaBean类用于接收配置文件属性值
如上图,通过@ConfigurationProperties(prefix=“person”) ,再加上*@Component*,则可以选择性的读取application.yml中的person对象,对应的yml中应该有如下编写:
person:
lastName:
age:
boss:
也可获取application.propreties对应的属性值,相关文件应该有如下编写:
person.lastName=
person.age=
person.boss=
以上是默认从全局配置文件获取值
读取指定配置文件
先新建配置文件conf/url.properties
·配置文件编写为list
url.list[0].url1=http://192.168.0.1
url.list[0].url2=http://192.168.0.1
url.list[0].url3=http://192.168.0.1
java中新建配置类 UrlConfig,配置类加注解
@Configuration //配置类注解,内部实现了@Componment注解
@ConfigurationProperties("url") //配置读取的参数的前缀
@PropertySource(value="classpath:conf/url.properties") //配置文件目录,可定义为数组模式,即可以从多个配置文件中读取
注意:@PropertySource注解只适用于从.properties文件读取配置
编写javaBean
@Configuration //配置类注解,内部实现了@Componment注解
@ConfigurationProperties("url") //配置读取的参数的前缀
@PropertySource(value="classpath:conf/url.properties") //配置文件目录,可定义为数组模式
public class UrlConfig {
// list中是一系列的map,后续可通过key值取值
private List<Map> list;
public List<Map> getList() {
return list;
}
public void setList(List<Map> list) {
this.list = list;
}
}
即可通过@Autowired UrlConfig urlConfig来读取配置文件项:urlConfig.getList(),并通过key来取出配置项的值
静态加载配置类对象(实现自动装载,正常使用)
由于静态对象在一开始就被加载,spring无法通过@Autowired来进行装载静态对象,但是我们常会用工具类编写静态方法的方式去使用配置类对象,那么就必须将配置类对象赋值给一个静态变量,这里有两种方法实现:
新建工具类:
public class PropertsUtils{
//新建静态变量用于接收配置类对象
private static staticUtil;
}
1通过构造函数
即把@Autowired添加到工具类的构造函数上,实现静态变量的赋值
@Autowired
public PropertiesUtils(UrlConfig urlConfig){
this.staticUtil = urlConfig;
}
2通过静态变量的set方法
即把@Autowired添加到set方法上,实现静态变量的赋值
@Autowired
public void setUrlConfig(UrlConfig urlConfig){
this.staticUtil = urlConfig;
}
当然,需要在类头添加@Componment注解
明显发现,第二种方式更为实用,因为它更加方便给多个静态变量进行配置配对象的赋值,语义也更加清晰
接下来便可以通过方法传入key来取配置文件中的配置项了
public static String getUrl(String urlName) {
String url = null;
List<Map> urlList = urlConfig.getList();
if (CollectionUtils.isNotEmpty(urlList)) {
Iterator<Map> iterator = urlList.iterator();
while (iterator.hasNext()) {
Map map = iterator.next();
if (map.containsKey(urlName) && StringUtils.isNotBlank(map.get(urlName).toString())) {
url = map.get(urlName).toString();
break;
}
}
}
return url;
}
配置文件的加载位置
最后
以上就是阔达荷花为你收集整理的spring boot 配置文件读取-实现配置项装载到静态变量中spring boot 配置文件(实现配置项装载到静态变量中)的全部内容,希望文章能够帮你解决spring boot 配置文件读取-实现配置项装载到静态变量中spring boot 配置文件(实现配置项装载到静态变量中)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复