SpringBoot中静态方法使用@Value注解
出现场景:工具类想使用配置文件中的配置,而静态方法只能使用静态属性直接增加了static会发现获取到的值为null因为静态变量加载要早于Spring初始化类加载顺序:静态字段或静态语句块 → 变量或者语句块被加载 → 构造方法被加载@Value("${value}")public static String value;可以使用@PostConstruct注解在Spring初始化之后再给静态遍历赋
·
出现场景:工具类想使用配置文件中的配置,而静态方法只能使用静态属性
- 直接增加了static会发现获取到的值为null
因为静态变量加载要早于Spring初始化
类加载顺序:静态字段或静态语句块 → 变量或者语句块被加载 → 构造方法被加载
@Value("${value}")
public static String value;
- 可以使用
@PostConstruct
注解在Spring初始化之后再给静态遍历赋值
注解说明
Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
@Component // component注解,让当前类变成Spring的bean
public class SmsVerificationCodeUtil {
@Value("${value}")
private String value;
private static String valueStatic;
/**
* 给静态变量赋值
*/
@PostConstruct
private void init() {
valueStatic = value;
}
// 即可使用valueStatic
public static String method(){
return valueStatic;
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)