问题来源
在springboot中,使用@Value
注解,可以从配置文件中获取配置好的变量值。
需要注意的是,这种方式能将获取到的值直接赋值非静态变量,即下面这样做是合理的,可以拿到变量值。
@Value("${login.name}")
private String loginName;
但却无法赋值给静态变量,即下面这样做是不合理的,得到的值是null
@Value("${login.name}")
private static String loginName;
解决方式
如果要将配置文件中的值,读取到并赋值给静态变量,怎么做?
实现代码如下,亲测可用。需要注意的是,要在类上加上spring框架的注解@Service
或者@Component
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
* @Description
* @ClassName Demo
* @Author yuhuofei
* @Date 2022/3/31 23:51
* @Version 1.0
*/
@Service
public class Demo {
private static String loginName;
@Value("${login.name}")
private void setLoginName(String name) {
loginName = name;
}
}