zoukankan      html  css  js  c++  java
  • springBoot 获取yml 文件中的参数给静态全局变量传值问题

    问题出在一次在工具类中使用静态变量请求外部接口时一直访问失败,经过排查发现,秘钥的值为null ,而秘钥是静态的只是从yml 文件中获取的。没有获取到,但其中另一个方法从yml 文件中获取的值却获取到了@value() 方法在不是静态变量的时候起效,在静态变量是不起效了。

    原因及解决方法:springBoot 加载时静态变量会先加载,导致没有赋值。

    解决方法:定义另外一个非静态的变量,并赋值,编写构造器,或 set 方法,使用@PostConstruct 注解赋值

    private static String APP_KEY;

    private static String SECRET_KEY;
    @Value("${appkey}")
    private String aa;

    @Value("${secretkey}")
    private String bb;

    @PostConstruct
    public void setAppKey() {
    HttpUtil.APP_KEY = this.aa;
    HttpUtil.SECRET_KEY = this.bb;
    }
  • 相关阅读:
    Apache POI 示例
    使用wsimport生成webservice客户端代码
    监听器
    @WebFilter注解
    事务
    k8s的deployment应用
    k8s 组件架构
    使用kubeadm安装kubernetes1.12.1
    轻量级批量管理工具pssh
    使用Bind服务配置DNS服务器
  • 原文地址:https://www.cnblogs.com/hxz-nl/p/13825136.html
Copyright © 2011-2022 走看看