有时候我们需要把配置文件中的变量注入给工具类中的静态变量,这时候我们直接在写变量上@Value(“${client.register.url}”)是注入不了静态变量的值始终是null。
@Value("${client.register.url}")
public static String url;
其原因是Spring不允许/不支持把值注入到静态变量中。
解决方案
Spring支持set方法注入,可以利用非静态方法注入静态变量。
- 创建set方法,注意要去除static修饰符
- 类需要有@Component或者@Service等注解扫描
@Component
public class ValidateUtil {
public static String url;
public static String getUrl() {
return url;
}
@Value("${client.register.url}")
public void setUrl(String url) {
ValidateUtil.url = url;
}
}