今天做项目遇到问题,在网上搜,竟然没有可以解决的方法,都说些无关紧要的办法,结合我自己的经验,进行简单总结
异常:找不到dao的bean,导致service,comtroller都创建bean失败。最直接的还是dao的bean没创建出来
Description:
Field userEntityMapper in com.xxx.xxx.service.UserService required a bean of type 'com.xxx.xxx.dao.UserEntityMapper' that could not be found.
Action:
Consider defining a bean of type 'com.xxx.xxx.dao.UserEntityMapper' in your configuration.
网上有好多springboot整合mybatis 的帖子,都大同小异。但是有一个细节需要注意:dao接口扫描不要放在启动类上,即不要在启动类上配置@MapperScan(BasePackages="XXX.XXX.XXX")!直接在dao接口上使用@Mapper(而不是@Repository)!按这样配置,dao层的错误,包括sql语句就可以在控制台打印出来了。
dao注入失败有极大可能是mapper.xml映射文件有问题
1.mapper标签的namespace不能写错,对应到dao接口
2.sql语句不能写错,如果给表中没有的字段赋值,会直接导致daobean的创建失败
3.这是一个常犯的错误,把resultMap和resultType写混了
4.dao接口其实只加一个@Mapper就行了,其他基本没问题
5.自己的代码应该在启动类同级或同级的子包下
6.如果依赖其他模块,可能需要在启动类上添加@ComponentScan
7.mybatis的依赖是springboot提供的依赖,自己单独配的可能会出问题
希望我的东西能帮到很多人,转载请注明出处