Mybatis 中的 @Mapper, @MapperScan, @Repository,mybatis.mapper-locations 的用法与区别

@Mapper#

@Mapper是mybatis自身带的注解。

使用@Mapper注解的接口,可以让spring自动创建该接口实现类对象。(先和对应的mapper.xml绑定,然后生成实现类)

@MapperScan#

有时候当我们有很多 mapper 接口时,就需要写很多 @Mapper 注解,这样很麻烦,有一种简便的配置化方法便是在 SpringBoot 启动类上使用 @MapperScan 注解。

@MapperScan 注解指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。(先和对应的mapper.xml绑定,然后生成实现类)

@Repository#

@Repository 是 Spring 的注解,用于声明一个 Bean。@Repository单独使用没用。可以这样理解,注解放在接口上本来就没有意义,spring 中在 mapper 接口上写一个 @Repository 注解,只是为了标识,要想真正是这个接口被扫描,必须使用 @ComponentScan 扫描注解。(启动类上的 @SpringBootApplication 注解中已经包含了 @ComponentScan 注解)

@Mapper 和 @Repository 的区别#

  1. @Mapper不需要配置扫描地址,可以单独使用,如果有多个mapper文件的话,可以在项目启动类中加入@MapperScan(“mapper文件所在包”)

  2. @Repository不可以单独使用,否则会报错误,要想用,必须配置扫描地址

mybatis.mapper-locations#

application.yml 中有 mybatis.mapper-locations 这一项,作用是是扫描Mapper接口对应的xml文件。

posted @   拾月凄辰  阅读(480)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2022-04-12 本地通过虚拟机ip:端口访问不了虚拟机内的服务
点击右上角即可分享
微信分享提示
主题色彩