@mapper换成@repository后无法注入

h1ccup 2018-09-08 10:49:36
初学者,在学习spring boot项目中使用mybatis 本来是在dao接口上面使用@mapper注解,没什么问题,然后在网上查到@mapper注解是mybatis3.4版本以后出来的,所以就想到在没有@mapper的时候应该就是用@repository注解,就出现了下面的问题,求解!


...全文
2354 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
游走八方 2020-04-02
  • 打赏
  • 举报
回复
@Repository需要在启动类上添加注解@MapperScan("com.xxx.mapper")一起使用
liuyuan987 2020-02-13
  • 打赏
  • 举报
回复
@repository 得注解在实现类上
有点儿困 2019-07-09
  • 打赏
  • 举报
回复 1
启动类用@MapperScan的话还要啥自行车啊,dao上啥注解都不用
哈希塞特 2019-04-28
  • 打赏
  • 举报
回复
@Mappler是mybatis注解,mybatis运行时需要能找到到mapper文件,然后运行时构建代理类来完成功能,和Spring没有关系。你应该用@MapperScan来扫描mapper接口,让mybatis能找倒这些接口。然后Spring的@ComponetScan也要扫描这些接口,这样Spring才能管理这些mybatis生成的代理类。 @Repository是Spring的注解,而且注解放在接口上也没用也没有意义,
许多年以后LP 2019-04-28
  • 打赏
  • 举报
回复
@Mapper只是用来扫描用的,当然你可以去掉,在springboot的启动类上@MapperScan(basePackages = {"com.xxx.xxx"})来扫描
awitingzz 2019-04-19
  • 打赏
  • 举报
回复
@Mapper是Mybatis的注解,是用来说明这个是一个Mapper,对应的xxxMapper.xml就是来实现这个Mapper,你改成了@repository,使用的是Spring的Bean注解,你觉得呢?
qq_40287494 2019-04-17
  • 打赏
  • 举报
回复
引用 11 楼 圆师傅 的回复:
Spring在扫描注解时,取消了扫描抽象类和接口,所以无法找到你用@reponsitory注解的dao接口。如果在idea中使用@Mapper注解,在@Autowired时,idea会提示找不到bean,但是不影响运行。但是我看着又难受,百度一堆规避的方法,包括设置改为warning等,后来发现一个骚操作,可以把两个注解同时使用,这样,@Mapper可以让你找到bean,@reponsitory可以帮你治疗强迫症。
我也是这么做的
圆师傅 2019-01-16
  • 打赏
  • 举报
回复
Spring在扫描注解时,取消了扫描抽象类和接口,所以无法找到你用@reponsitory注解的dao接口。如果在idea中使用@Mapper注解,在@Autowired时,idea会提示找不到bean,但是不影响运行。但是我看着又难受,百度一堆规避的方法,包括设置改为warning等,后来发现一个骚操作,可以把两个注解同时使用,这样,@Mapper可以让你找到bean,@reponsitory可以帮你治疗强迫症。
Lily@g 2018-11-29
  • 打赏
  • 举报
回复
如果要用@repository 在启动类加@MapperScan("cn.qzzg.*.mapper") 指定到要相应的位置
一只开发狗001 2018-11-26
  • 打赏
  • 举报
回复
控制层直接注入dao??? 不经过service?
蓝色树叶 2018-11-25
  • 打赏
  • 举报
回复
可以在启动类上加@MapperScan注解指定接口所在包
例如:@MapperScan(basePackages = {"com.tuyou.user.center.repository.standard"})
kalacsdn 2018-09-10
  • 打赏
  • 举报
回复
脚本语言不懂,咋个看法?
h1ccup 2018-09-10
  • 打赏
  • 举报
回复
引用 3 楼 LGX_TvT 的回复:
使用@repository要自己写对应dao的mapper配置文件
我想的是@repository只是springIOC代理这个接口 怎么会不能自动注入的问题 而且mybatis不是只要在对应的mapper.xml里面把spacename改成这个接口的限定名就行了吗- -
h1ccup 2018-09-10
  • 打赏
  • 举报
回复
引用 3 楼 LGX_TvT 的回复:
使用@repository要自己写对应dao的mapper配置文件
是要在mybatis的配置文件里面配置吗
h1ccup 2018-09-09
  • 打赏
  • 举报
回复
没人解答一下嘛- -
LGX_TvT 2018-09-09
  • 打赏
  • 举报
回复
使用@repository要自己写对应dao的mapper配置文件
杀猪剑客 2018-09-09
  • 打赏
  • 举报
回复
我们现在一般都是用@Mapper 如果用@Respository 可以实现dao,然后自己写实现方法! 几个问题:一般现在都是用@RestController 因为前后台分离,现在都用RestFul。默认都是已json返回数据 2.@RequestMapping 现在都是@GetMapping @PostMapping

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧