联调的时候一个记得没有改动的接口,再次上传调试时报空指针异常了,排查了很久都没找到问题
搜了一个内容比较多的检查攻略:
深入探讨service注入为null问题_笔记大全_设计学院
也没找到具体以问题
最后检查controller方法的修饰符发现public被改private
后来想想是因为之前service的impl包放错了位置,手动移过去的时候导致了方法的修饰符改变,然后导致的问题
最后附上修饰符范围导致无法注入的解释
service 注入为null 踩坑注意_service注入为null-CSDN博客
原因分析:
容器扫描bean生成代理类的时候,public和protected方法可以被正常代理,而private方法的不会被代理,属性的注入也是在代理类中完成,所以public/protected方法获取的注入属性是完成注入的属性,private方法获取的是未完成注入时的属性,所以是null。
AOP切入的方法,其访问权限为protected/public,如果匹配private时,会导致其方法中所有的属性注入 注入失败。