由于static静态域最早加载到内存中,所以@Value不会生效,在set方法上使用value注解(注意set方法不是静态的,否则无法赋值),如下:
/**
* ClassName UserRoleUtils
* Description
*
* @author wang
* Date 2021/7/5 16:51
*/
@Component
public class UserRoleUtils {
private UserRoleUtils(){}
private static List<String> ignoreValues;
@Value("#{'${ignore.dept.values}'.split(',')}")
public void setIgnoreValues(List<String> ignoreValues) {
UserRoleUtils.ignoreValues = ignoreValues;
}
}
本文探讨了如何在Spring Boot组件类中,通过在非静态set方法上使用@Value注解来为静态域赋值,避免因静态域加载先于配置导致的@Value注解失效问题。
1012

被折叠的 条评论
为什么被折叠?



