zoukankan      html  css  js  c++  java
  • Spring的@Value注解为静态变量赋值

    Spring的@Value注解为静态变量赋值

    有时候我们需要把配置文件中的变量注入给工具类中的静态变量,这时候我们直接在写变量上@Value("${sys.proxy.host}")是注入不了静态变量的值始终是null。

    @Value("${sys.proxy.host}")
    public static String host;
    

    其原因是Spring不允许/不支持把值注入到静态变量中。

    解决方法

    Spring支持set方法注入,我们可以利用非静态set方法注入静态变量。

    • 创建set方法,注意要去除static修饰符
    • 类需要有@Component或者@Service等注解扫描
    @Component
    public class TouTiaoTool {
        private static String host;
        private static int port;
        
           public String getHost() {
            return host;
        }
    
        @Value("${sys.proxy.host}")
        public void setHost(String host) {
            TouTiaoTool.host = host;
        }
    
        public int getPort() {
            return port;
        }
    
        @Value("${sys.proxy.port}")
        public void setPort(int port) {
            TouTiaoTool.port = port;
        }
    }
    
    -------------已经触及底线 感谢您的阅读-------------
  • 相关阅读:
    hgoi#20191101
    hgoi#20191031
    hgoi#20191030
    hgoi#20191029-2
    RMQ (Range Minimum/Maximum Query)
    数学浅谈-组合数与数学期望
    重庆NK十日行-知识点汇总
    分块
    STL—algorithm与Map容器
    搜索—迭代加深
  • 原文地址:https://www.cnblogs.com/cnsyear/p/12913468.html
Copyright © 2011-2022 走看看