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

最新文章

  1. [原]excel启动时死锁
  2. C#.Net Mvc运营监控,计算方法/接口/action/页面执行时间
  3. 再说linux中的rm mv 遍历执行多个文件的操作: find + xagrs
  4. [Qcon] 百姓网开发总结
  5. python unicode字节串转成中文问题
  6. CCS学习资料汇总
  7. spring websocket Converters must not be empty
  8. xml格式化写入文件
  9. IE标签a嵌套table标签,链接点击无效
  10. F# 既能解释执行,也能编译执行
  11. Week11(11月18日)
  12. Code Forces 448C Painting Fence 贪婪的递归
  13. php常量作用
  14. 某直播App问题分析
  15. [Swift]LeetCode301. 删除无效的括号 | Remove Invalid Parentheses
  16. linux 下配置svn
  17. u-boot(六)小结
  18. 04 树莓派截图软件scrot的安装和使用
  19. vue2 在mounted函数无法获取prop中的变量的解决方法
  20. MySQL慢查询日志相关的配置和使用。

热门文章

  1. 事务(JDBC、Spring)
  2. CESM部署安装环境和使用
  3. Win10磁盘占用率过高
  4. 几种常见的排序算法Java实现总结
  5. Sublime Text格式化HTML JS CSS代码
  6. 如何修改FlashFXP默认编辑工具使用记事本打开
  7. 判断表单中是否含有disabled属性
  8. Windows 入门杂乱无章版
  9. HDU 5418——Victor and World——————【状态压缩+floyd】
  10. asp.net core 2.1 生成swagger文档