我是靠谱客的博主 阔达荷花,最近开发中收集的这篇文章主要介绍spring boot 配置文件读取-实现配置项装载到静态变量中spring boot 配置文件(实现配置项装载到静态变量中),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 配置文件(实现配置项装载到静态变量中)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部