问题现象:
Field XxxUserExtDao in com.xxx.auth.service.controller.abs.BaseController required a bean of type 'com.xxx.auth.service.mapper.run.XxxUserExtDao' that could not be found.
问题分析:
前提:
在完成上述操作之前,请先基于mybatis创建好dao层接口类对应的dao层实现类(一般都是以xml文件的形式,并确保mapper标签的namespace属性指定为dao层接口类的全路径。)
这是因为spring的Ioc容器在注入bean对象的时候,在Controller 类中检测到了 @Autowired 注解,于是就会去寻找这个 mapper 对象的注入方式:
由于dao层的实现类对于项目结构而言,太冗余了,每写一个dao层接口,就得手写一个实现类,于是我们可以通过注解的方式,来实现自动创建dao层实现类,而不再需要自己手动创建实现类和添加@Repository注解了,方式有两种:
1. 在 dao层接口类 上添加 @Mapper注解。 作用:在接口类上添加了 @Mapper注解 ,在编译之后会自动生成相应的接口实现类:
2.在主类(启动类)上添加 @MapperScan注解,并指定dao层接口的包路径,在编译之后会自动生成相应的接口实现类
推荐使用第二种,希望以上内容对你们有所帮助