spring [email protected]注入失败和自定义controller扫描失败的解决方法
刚接触spring boot,从网上找了一篇教程,试着做一个spring boot+mybatis的小demo,使用STS构建的,IDE用的是eclipse
参考了这篇教程https://segmentfault.com/a/1190000017211657
基本是参照教程写的,那篇教程写得不错,讲解得比较详细,但是我在运行的时候出现了两个问题
一、controller包下面的userController扫描不到,所以里面的 @RequestMapping不起作用
解决方法:
在网上找到了解决方法,就是在启动类加上注解@ComponentScan,@ComponentScan是spring boot专门用来扫@Component,@Service, @Repository, @Controller等注解的注解。但是到了我的demo里面还是不起作用,然后又去看了一**解@ComponentScan的文档,有这么一段话
大概的意思就是要给 basePackageClasses
or basePackages
指定一个包的话,就会从这个包开始扫描,如果不指定的话,就会从加了这个注解的类所在的包开始扫描。所以官方推荐是把启动类放在bean,controller,service,dao等需要扫描的包的上一级,但是我这样试过之后,在我的环境之下不起作用,搞不懂是为什么,所以后来我就把启动类放到了controller包中(即使这样做可能不太规范)
因此我做了以下的修改
从example包开始扫描,这样的话example下面的bean,controller,service,dao包里面的注解就都能扫描到了。
二、@ Autowired注入失败
解决方法:
在网上找到的解决方法是添加注解@MapperScan
当使用Java进行配置时,可以用@MapperScan注解用来注册Mabatis映射接口
于是我做了以下的修改
两个地方修改之后,就完全运行起来了
问题解决,赶紧写了这篇博客,希望能够帮到遇到相同问题的人