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在类上不好使...

  • 相关阅读:
    用PHP如何打造一个高可用高性能的网站
    php 数据批量插入mysql和mysql类
    PHP8新特性
    php 爬取抖音评论数据
    Python学习笔记之7.5
    mysql基本概念
    开发google插件
    php curl 重定向 cookie问题
    git 入门
    git对已经提交过的文件添加到.gitignore
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14652227.html
Copyright © 2011-2022 走看看