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

在SpringBoot项目中,由于硬件SDK的静态资源类未作为bean注册,导致@Value注解无法正常工作。通过创建一个helper类并注册为bean,然后在@PostConstruct中将配置文件数据传递给静态变量,解决了无法注入的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值