情形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

Spring/Spring boot中静态变量赋值的更多相关文章

  1. spring注解不支持静态变量注入

    spring注解不支持静态变量注入:今天敲代码  自动配置 配置: Animal.java package study01_autoconfig.beanConfig; import org.spri ...

  2. C++类中静态变量和普通变量的区别

    静态变量: 1.静态变量会被编到程序的exe里面,从程序启动到结束,它一直存在: 2.静态变量的初始化值为0: 3.全局变量默认是静态变量: 4.在类中的函数变量前面加了static的也是静态变量,只 ...

  3. Qt中静态变量使用方法

    静态变量可以在各个页面之前使用 先定义一个用于存放静态变量的类 例如datavar 在datavar.h中添加如下代码 #ifndef DATAVAR_H #define DATAVAR_H #inc ...

  4. Java中静态变量的声明位置

    Java中静态变量只能是成员变量,局部方法中的局部变量除final外不能有任何其他修饰符,例如: public class Test { static String x = "1" ...

  5. PHP中静态变量的使用

    1.定义静态变量 public static $endpoint,$accessKeyId,$accessKeySecret,$bucket; 2.静态变量赋值 protected function ...

  6. 谈谈java中静态变量与静态方法在有继承关系的两个类中调用

    谈谈java中静态变量与静态方法在有继承关系的两个类中调用 学习的中如果遇到不明白或者不清楚的的时候,就是自己做些测试,自己去试试,这次我就做一个关于静态变量和静态方法在有继承关系的两个类中的问题测试 ...

  7. Java 中静态变量和实例变量区别

    Java 中静态变量和实例变量区别 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量. 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量. 在程序运行时的区别: 实例变量属于某个对 ...

  8. Spring Boot中静态资源(JS, 图片)等应该放在什么位置

    Spring Boot的静态资源,比如图片应该放在什么位置呢, 如果你放在传统WEB共的类似地方, 比如webapp或者WEB-INF下,你会得到一张示意文件未找到的破碎图片.那应该放哪里呢? 百度一 ...

  9. spring配置文件注入到静态变量

    spring配置注入到静态文件代码如下: package com.test.oss; import org.springframework.beans.factory.annotation.Value ...

随机推荐

  1. c++中代理类的学习

    https://blog.csdn.net/lcg910978041/article/details/51468680 C++代理类是为了解决这样的问题: 容器通常只能包含一种类型的对象,所以很难在容 ...

  2. Engineer Assignment HDU - 6006 状压dp

    http://acm.split.hdu.edu.cn/showproblem.php?pid=6006 比赛的时候写了一个暴力,存暴力,过了,还46ms 那个暴力的思路是,预处理can[i][j]表 ...

  3. Linux平台命令挂载U盘——实现数据共享

    废话少说,一一道来,Linux中按照步骤来做就可以啦.(嵌入式平台) 1.先看看本地的mount信息 # mountrootfs on / type rootfs (rw)/dev/root on / ...

  4. Python3实现计算BMI指数,跟我一起来计算你的BMI吧

    废话不多说,直接上程序哈: name=input('Name:') height=input('Height(m):') weight=input('Weight(kg):') BMI=float(f ...

  5. Kudu的概念术语

    不多说,直接上干货! Columnar Data Store(列式数据存储) Kudu 是一个 columnar data store(列式数据存储).列式数据存储在强类型列中.由于几个原因,通过适当 ...

  6. PHP的htmlspecialchars、strip_tags、addslashes解释

    第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大 ...

  7. 【PHP】 hash加密

    之前对密码进行加密是在JS文件里做的,但是不行,改到PHP文件里进行加密比较安全,于是乎…… [原JS加密代码] var password = sha256_digest(pwd); 后来在网上调查方 ...

  8. IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)

    IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只 ...

  9. Tiled 地图编辑器使用教程-官方demo

    一.Tiled Map Editer 下载地址 http://www.mapeditor.org/download.html 二.官方教程查看 下载安装后,不管windows还是Mac系统都包含官方例 ...

  10. maven课程 项目管理利器-maven 3-1 maven常用的构建命令

    mvn -v 查看mvn版本 mvn compile  编译 mvn test 测试 mvn package 编译,打包(这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功 ...