问题:目前碰到配置文件中的属性有好几个文件需要使用,这样的话,这几个类都需要使用 @Value 进行赋值,比较麻烦,所以现在使用 @Value 给一个公共类的静态变量赋值,然后这几个类直接通过类名进行调用。
但是,平时使用 @Value 注解时都是给普通变量进行赋值,现在碰到需要给静态变量进行赋值,直接使用 @Value 注解已经无法赋值了,所以需要通过下面的方法来进行解决。
比如平时是使用这种方法,给普通变量进行赋值,这样一来每个类需要用到的话就需要每个类都写一遍,需要做重复工作。
@Value("${server.address}")
public String address;
现在想了一个办法,写一个全局配置类,将常用配置都写成静态,直接通过类名进行调用,这样就比较方便,不需要重复赋值了
但是,使用下面的代码通常运行之后,获取出来的变量都是 null
@Value("${server.port}")
public static String address;
解决办法如下:
@Configuration
public class BaseConfiguration {
public static String address;
@Value("${server.address}")
public void setAddress(String param){
address = param;
}
}
先声明好静态变量,然后通过 set 方法对静态变量进行赋值,这样就能够取到配置文件中的信息了。
关注公众号查看更多资源