SpringBoot Autowire配置遇到的问题

最近学习使用SpringBoot,在使用自动装配Autowire的时候出现点问题,记录下来。


这里使用到了SpringBootTest来测试dao层,在使用Autowire注解让dao自动装配时,遇到了这个问题,dao层一直报错,网上查了之后,说是Idea在使用Autowire这个注解时,有时会出现报错,但是不影响程序运行。
这里写图片描述

事实上运行它确实报了错,说这个dao层的bean不存在,一开始以为是Test类的配置搞错了,百度了其他人的代码,都是这么配置的,SpringBootTest这个注解指向的类配置也没有错。
这里写图片描述


1.网上查了下,说是springBoot这个SpringBootApplication这个类必须是在package的最外层,比如在com.app这个包中,那么Autowire扫描时会扫描com.app下的所有类和包,发现自己这个SpringBootApplication确实没有在最外层,赶紧移动到最外层。
这里写图片描述
移动好后运行测试类,还是报错说bean不存在。


2.经过百度比对别人的代码后,发现是Dao层有错误,原本的配置如下:
这里写图片描述
发现别人的配置是:
这里写图片描述

对bean的注解使用的是@Mapper,改了一下运行,发现可以了,dao层可以自动装配了。
之前用的ssm框架式,用的@Repository注解,dao是可以自动装配,到了SpringBoot居然不可以。


3.在使用mybatis自增长主键时,发现主键获取一直为空,检查了dao层@Options中的配置,确实没有错,字段跟column都对得上,最后发现是数据库表的主键忘了设置auto_increment。查了好久的配置,之前没太在意这个东西,记下来避免下次再踩坑。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/CASER_HDMI/article/details/80199410
今日推荐