美文网首页
Springboot使用@Value注入静态变量问题

Springboot使用@Value注入静态变量问题

作者: ananRunner | 来源:发表于2019-12-18 14:33 被阅读0次

有时候我们需要把配置文件中的变量注入给工具类中的静态变量,这时候我们直接在写变量上@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;
    }
}

相关文章

网友评论

      本文标题:Springboot使用@Value注入静态变量问题

      本文链接:https://www.haomeiwen.com/subject/frfugxtx.html