zoukankan      html  css  js  c++  java
  • spring中使用@value注入static静态变量

    @Value("${meeting.private_key}")
    public static String PRIVATE_KEY;

    发现没有数据,null

    分析

    Spring是不能直接在static变量上使用@value为其注入值的,因为Spring的依赖注入是依赖setter方法,setter方法是属于对象的,而static变量是属于类的。

    方式一

    再声明一个实例变量,将@Value移到该实例变量上,再加一个@PostConstruct注解的方法,方法内将该实例变量的值赋给静态变量。

        public static String PRIVATE_KEY;
        @Value("${meeting.private_key}")
        private String loginUrl;
        @PostConstruct
        public void init() {
            PRIVATE_KEY = this.loginUrl;
        }
        @GetMapping("getkey")
        public String getkey() {
            System.out.println(PRIVATE_KEY);
            return PRIVATE_KEY;
        }

    臃肿..不理想

    方式二(推荐)

    再加一个有@Value注解的就一个参数的方法,方法内将参数值赋给静态变量。

        public static String PRIVATE_KEY;
    
        @Value("${meeting.private_key}")
        public void setloginUrl(String loginUrl) {
            PRIVATE_KEY =loginUrl;
        }
        @GetMapping("getkey")
        public String getkey() {
            System.out.println(PRIVATE_KEY);
            return PRIVATE_KEY;
        }

    另外尝试过直接加@Data在类上不好使...

  • 相关阅读:
    各种读取速度
    索引倒排
    清空mysql数据
    java随机读取文件
    移动文件
    输出字符串数组
    背包问题
    使用bloomfilter
    使用hash拆分文件
    判断文件的编码格式
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14652227.html
Copyright © 2011-2022 走看看