<>写在前面

在SpringBoot的项目中,集成Mybatis持久层框架后,对于Mybatis的接口类如:UserMapper,SysMenuMapper,这些接口类
Mapper用于访问持久层,在JPA中指的是DAO层。在Service层需要使用@Autowired或@Resource注解注入后调用
Mapper里的方法时,需要将这些接口注入到Spring上下文中。有两种方法可以完成注入:
在每个类*Mapper的接口上都加一个@Mapper注解。
在SpringBoot的启动类上加一个@MapperScan并指明包路径。

<>使用区别

@Mapper与@MapperScan 不能同时使用,否则@Mapper注解不起作用。

方法一:使用@Mapper
直接在每个对应的Mapper类上面添加注解@Mapper。Mapper类较多时,这样使用比较麻烦。 @Mapper public interface
IssueMapper { /** * 查询试题 * * @param issueId 试题ID * @return 试题 */ public Issue
selectIssueById(Long issueId); }
方法二:使用扫描注解@MapperScan
在每个模块对应的启动类上添加注解@MapperScan("com.hadoopx.**.mapper")。 需要指明扫描包的范围,可以扫描1
个或多个包,也可以扫描子包,需要通过通配符*或者**来指定。
①. 指定单个包:
@MapperScan("com.hadoopx.issue.mapper") @SpringCloudApplication public class
ServicexYqxApplication { public static void main(String[] args) {
SpringApplication.run(ServicexYqxApplication.class, args); System.out.println(
"一起学服务启动成功..."); } }
②. 指定多个包:
@MapperScan({"com.hadoopx.issue.mapper","com.hadoopx.test.mapper",
"com.hadoopx.paper.mapper"}) @SpringCloudApplication public class
ServicexYqxApplication { public static void main(String[] args) {
SpringApplication.run(ServicexYqxApplication.class, args); System.out.println(
"一起学服务启动成功..."); } }
或者使用通配符:
// 一个*代表只能扫描任意单个包,无法递归扫描 @MapperScan("com.hadoopx.*.mapper")
@SpringCloudApplication public class ServicexYqxApplication { public static void
main(String[] args) { SpringApplication.run(ServicexYqxApplication.class, args);
System.out.println("一起学服务启动成功..."); } } // 两个**代表可以扫描任意个包,可以递归扫描 @MapperScan(
"com.hadoopx.**.mapper") @SpringCloudApplication public class
ServicexYqxApplication { public static void main(String[] args) {
SpringApplication.run(ServicexYqxApplication.class, args); System.out.println(
"一起学服务启动成功..."); } }

技术
©2019-2020 Toolsou All rights reserved,
TypeScript:函数类型接口8道大厂指针笔试题让你秒杀指针!!!MySQL 日期时间加减mysql 查询条件之外的数据_mysql 查询符合条件的数据查linux的操作系统版本,如何查看Linux操作系统版本?将String类型转换成Map数据类型使用uuid做MySQL主键,被老板,爆怼一顿C语言中的字符串函数和字符函数linux服务器中毒排查--基础篇C# ASCII码字符转换