idea报“Could not autowire. No beans of ‘UserMapper‘ type found. ”错解决办法
idea报“Could not autowire. No beans of ‘UserMapper‘ type found. ”错解决办法
原因和解决办法
1.原因
idea具有检测功能,接口不能直接创建bean的,需要用动态代理技术来解决。
2.解决办法
1.修改idea的配置
1.点击file,选择setting
2.搜索inspections,找到Spring
3.找到Spring子目录下的Springcore
4.在Springcore的子目录下找到code
5.把seyerity选项改成警告
2.修改代码
1,@Autowrited改为@Autowrited(required = false)
2,在@Mapper上面加上@Reoository
3,使用@MapperScan和@Reoository
3.扩展
1.@Repository 与 @Mapper区别
1.数据接口层 @Repository 与 @Mapper都是作用于数据接口层,用于数据访问
2.分属不同的框架 org.springframework.stereotype.Repositor和org.apache.ibatis.annotations.Mapper,从类的包路径就可以看出来,@Mapper是 Mybatis 的注解,和 Spring 没有关系,@Repository 是 Spring 的注解,用于声明一个 Bean。
3.动态加载方式不同 使用 Mybatis 有 XML 文件或者注解的两种使用方式,原理是一样的,Mybatis 需要找到对应的mapper,在编译的时候动态生成代理类,实现数据库查询功能,所以只要在数据接口类上加上@Mapper就能被动态加载。
然后,@Repository只是为了标识,注解本身是没有作用的,需要和@MapperScan注解配合使用
注意:@Repository不可以单独使用,否则会报错误,要想用,必须配置扫描地址(@MapperScannerConfigurer)
更多推荐
所有评论(0)