使用@Value 注解获取配置文件中的值如何赋值给static变量

本文介绍了在Spring项目中,使用@Value注解从配置文件读取数据并赋值给静态变量时遇到的问题。通常,直接赋值给静态变量会导致值无法正常获取。解决方案是在非静态变量中暂存配置值,然后在@PostConstruct初始化方法中将该值赋给静态变量。
摘要由CSDN通过智能技术生成

        现在很多项目中很多的校验规则,类型,等很多数据都不会在项目中写死,而是做成可配置的,这样当新加了校验规则或者是类型等数据的时候就不用去修改代码,而是在配置文件中去加或者修改配置文件,修改完成后重启一下服务就行了,如果想更方便点不用重启服务的话,那就做一个动态的配置文件,这样连重启服务的动作都可以省略了。

        我们项目中平时一些需要配置的数据都是配置在server.properties中,而我们在取的时候都是用@value注解去取就可以了,具体如一下代码:

server.properties文件:

#商城文件校验对应userid的长度
check_rule=1,32
#商城文件IDtype

id_type=01,02,03,04,05,08

代码中去读取:

@Value("${check_rule}")
private String checkRule;
@Value("${id_type}")

private String idType;

        今天仍然是把数据形式写成一个可配的,放在server.properties中,代码中也是用同样的方法去读取,但是最终没有读取到,因为当时并没有主要到,读取到数据是要赋给一个static修饰的静态变量,当赋给一个静态变量的时候是不可以的,才知道一般情况下是需要一个中间变量的而且还要初始化一下,原理大概是先将从配置文件中读取到的数据赋值给一个非动态变量,然后再定义一个静态变量,再初始化静态变量将非静态变量赋值给静态变量,这样静态变量就有了值,下面代码中就可以

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值