练习SSM整合的权限管理系统案例时,给用户添加角色时出现如下错误:
java.lang.NullPointerException
at com.itheima.ssm.controller.UserController.addRoleToUser(UserController.java:24)
排查了好久,一直没搞懂为啥会出现空指针异常,后来看到一篇博客,才知道问题出在private关键字上。
原因:容器扫描bean生成代理类的时候,public和protected方法可以被正常代理,而private方法的不会被代理,属性的注入也是在代理类中完成,所以public/protected方法获取的注入属性是完成注入的属性,private方法获取的是未完成注入时的属性,所以是null。