今天第一次正式接手项目,遇到一个问题就是在我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