zoukankan      html  css  js  c++  java
  • Spring/Spring boot中静态变量赋值

    情形1:静态变量为自动注入的对象

     解决方案:设置两个变量非静态变量使用@resource注入Bean,然后使用@PostConstruct在Spring初始化Bean成功后为静态变量赋值

    @Component
    public class XXUtils {
    
        @Resource
        private XXXProperties xxxPropertiesAutowired;
    
        private static XXXProperties xxxProperties;
    
        @PostConstruct
        public void init() {
           xxxProperties = this.xxxPropertiesAutowired;
        }
    }

    情形2:静态变量为普通的基本数据类型,并且从配置文件中读取初始化值

     解决方案:不要在静态变量上使用@Value注解(spring不允许/不支持把值注入到静态变量中)

                      在其对应的set方法是使用@Value注解(set方法不能是静态的)

    /**
         * 渠道号(XX提供,从配置中读取并初始化)
         */
        public static String SFT_NOTIFY_CEB_CHANNEL;
    
        /**
         * 机构号(XX’提供,从配置中读取并初始化)
         */
        public static String INST_CODE;
    
        //===================get/Set Method======================
        @Value("${mf.cebconfig.SFT_NOTIFY_CEB_CHANNEL}")
        public void setSFT_NOTIFY_CEB_CHANNEL(String sftNotifyCebChannel) {
            SFT_NOTIFY_CEB_CHANNEL = sftNotifyCebChannel;
            logger.info("init SFT_NOTIFY_CEB_CHANNEL value suss,sftNotifyCebChannel={}",sftNotifyCebChannel);
        }
    
        @Value("${mf.cebconfig.INST_CODE}")
        public void setINST_CODE(String instCode) {
            INST_CODE = instCode;
            logger.info("init INST_CODE value suss,instCode={}",instCode);
        }

    参考:

    https://www.jianshu.com/p/127310cb90e0

    http://blog.csdn.net/zhayuyao/article/details/78553417

  • 相关阅读:
    MacPE+WinPE-黑苹果之路
    项目已被os x使用 不能打开-黑苹果之路
    X230上安装Yosemite/Win7-黑苹果之路
    SVN-服务器搭建、apache2整合、eclipse使用
    Android开发-Hello World+phonegap(Cordova)
    IOS开发-phonegap上的数据库
    lenovo X230热键功能
    XBox360-双光盘游戏自制GOD
    Kindle3与亚马逊
    iOS开发tips-UIScrollView的Autlayout布局
  • 原文地址:https://www.cnblogs.com/huahua035/p/8529579.html
Copyright © 2011-2022 走看看