springboot无法注入静态变量的解决方法

Q:编写代码时遇到原始代码的一个遗留问题。项目使用的是springboot框架,由于接入硬件sdk,原始代码主动创建(new)了一个含有回调函数的类,类中含有静态资源,所以原始代码没有将该类注册为spring的bean对象。但由于后期在修改代码时需要让该类读取application.yml中的数据,不在spring容器中的对象且主动new出来的对象无法使用spring的依赖注入,即@Value失效。

A:我的解决方案是创建一个helper类,并注册为spring的bean(即加上@Compoment注解),然后通过依赖注入配置文件中的数据,再通过@PostConstruct将类普通属性传递到静态属性上。

Trips:
1.构造函数、@Autowired、@PostConstruct执行顺序
构造函数 > @Autowired > @PostConstruct
2.所有主动new出来的对象都不会进行依赖注入。

@Component
public class StaticParamsHelper {
   
    @Value
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值