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

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

        我们项目中平时一些需要配置的数据都是配置在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修饰的静态变量,当赋给一个静态变量的时候是不可以的,才知道一般情况下是需要一个中间变量的而且还要初始化一下,原理大概是先将从配置文件中读取到的数据赋值给一个非动态变量,然后再定义一个静态变量,再初始化静态变量将非静态变量赋值给静态变量,这样静态变量就有了值,下面代码中就可以用到了,具体可以参考一下代码:

server.properties文件:

#流水号后3位

init.random=010

程序代码中读取:

@Value("${init.random}")
private String random ;
private static String initRandom ;

@PostConstruct
private void init() {

initRandom=random;

  }

这样在下面代码中就可以使用initRandom变量,其值就是我们在配置文件中配置的010

猜你喜欢

转载自blog.csdn.net/ghbxj1989/article/details/79474163