1.问题介绍
今天写了一个controller,在controller里面掉用服务,controller里面自动注入了服务类,在测试时只想看看业务逻辑是否正确,没有采用浏览器url的方式访问,想在测试类里面直接利用new controller() 的实例对象去调用方法,结果一直出现bean未注入的异常。
2.分析过程
排查流程
- (1)controller的包是否在项目application目录的同级或者时下级。
- (2)类是否有注解标记,@Controller,@Service等。
- (3)类的bean的传递是否有@Autowired或者、@Resource注解。
- 在检查无一上诉问题后,意识到spring对bean的管理不要求去手动的创造给组件@component的对象,意识到controller实例对象是不能去new的。
3.解决办法
- 在测试类里面自动注入一个controller实例,问题就得到解决了。