springboot在Utils工具类中读取配置文件

本文介绍了在SpringBoot应用中,如何在Utils工具类中正确读取配置文件。当使用@Value注解在静态方法中获取配置时会遇到问题,解决方案是创建一个配置文件类,并使用@ConfigurationProperties注解,然后在Util类中注入该配置类,通过静态属性来访问配置参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在springboot中读取配置文件非常简单,只需要在类中定义一个私有属性,然后再该属性中使用@Value注解即可,例如

/**
 * 系统名称
 */
@Value("system.sign.sysName")
private String sysName;


就可以使用配置文件中定义的字段了,当然这不是本文要讲解的重点。

在使用Util类时如果以上面这种方式获取配置文件字段,在以static修饰的静态方法中只能获取到null,下面讲解一下另一种获取配置文件的方式

定义一个配置文件类,例如叫SystemPropertiesConfig,在该类中定义跟配置文件字段名相同的字段属性。在类名前面添加注解

@Component
@ConfigurationProperties(prefix = "system.sign")


prefix是我本地环境的配置,配置文件中我的字段名为system.sign.sysName = XXX

代码为:

/**
 * 系统信息配置
 */
@Component
@ConfigurationProperties(prefix = "system.sign")
public class SystemPropertiesConfig {

    /**
     * 系统名称
     */
    private String sysName;

    public String getSysName() {
        return sysName;
    }

    public void setSysName(String sysName) {
        this.sysName = sysName;
    }
}


下面的工作就是将SystemPropertiesConfig类注入到Util工具类中,我的上一篇博客中已经讲明怎样使用,在这里再啰嗦一遍

比如我们要注入RestTemplateUtil工具类,首先在工具类上添加注解@Component

然后定义一个静态私有属性,如

private static  SystemPropertiesConfig systemPropertiesConfig;

再使用init方法进行初始化

@Autowired
public void init(SystemPropertiesConfig systemPropertiesConfig) {
    RestTemplateUtil.systemPropertiesConfig = systemPropertiesConfig;
}


然后就可以在静态方法中调用systemPropertiesConfig中的参数了,就是这么简单

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~结束

转载于:https://my.oschina.net/lijinzhao/blog/3030144

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值