关于工具类调用Service层接口@Autowired注入失败

博主在初次接触后端项目时遇到一个问题,即在 Controller 中调用 Service 层能正常工作,但在静态工具类中调用 Service 层时出现空指针异常。起初认为是传参问题,但调整后问题依旧。后来了解到静态方法不能直接注入非静态的 Service,因此尝试使用 @Autowired 注解并创建一个 BeanUtils 工具类继承 ApplicationContextAware,解决了静态方法中调用 Service 的问题。通过这次经历,博主对 SpringBoot 的依赖注入有了更深入的理解。

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

今天第一次正式接手项目,遇到一个问题就是在我Controller层从前端传入值调用Service查询数据库有返回的值,但是在我的工具类中调用Service层会显示控制指针异常,这个问题搞了一天,先开始以为是工具类传给Service层的值有问题,传入的List给List<String>值有问题,如下图:

 

 

问了学长后发现不是传入的值有问题,是因为这个工具类的方法是静态方法,而我要引入Service层就必须在private 后面加一个Static不然会报错,因为是刚接触后端对一些基本概念还不理解,所以就直接alt+enter根据提示改的。

后来把工具类的取出static之后发现还是报空指针异常,于是又经过很长的折磨,最后想会不会是这个@Autowired注入有问题,因为我只知道这个注解是将引入的方法交给Spring,具体的流程什么的都不知道,或者换句话说,我只知道凡是引入Service层的方法就必须加@Autowired。一个刚学会后端的小白。

在网上又经过一番的搜索之后来自springboot @Autowired 注入为null 的原因与解决方式_Jack2013tong的博客-CSDN博客_autowired注入的对象为null大佬的解决办法,创建一个BeanUtils工具类继承ApplicationContextAware,然后在将所要调的工具类改为

 这样就算加入static静态变量也不会报空指针异常。

至此,花费一天的BUG解决,记录于2022/6/23 22:25

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值