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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容