mybatis:scan和MapperScannerConfigurer
时间: 2023-10-26 09:23:44 浏览: 35
mybatis:scan和MapperScannerConfigurer都是用于自动扫描MyBatis的Mapper接口,并将这些接口注册为Spring的Bean。两者的主要区别在于使用方式和配置方式。
mybatis:scan是基于Spring Boot的自动配置,可以更加方便地进行配置和使用。只需要在Spring Boot的配置文件中添加相关配置,即可自动扫描Mapper接口并注册为Spring的Bean。
MapperScannerConfigurer需要在Spring配置文件中明确配置,需要手动创建一个MapperScannerConfigurer实例,并配置其相关参数,如Mapper接口所在的包名和SqlSessionFactory的Bean名称。
另外,mybatis:scan可以通过配置多个mapper-locations来扫描多个Mapper XML文件,而MapperScannerConfigurer只能扫描指定包下的Mapper接口。
总的来说,mybatis:scan更加方便简洁,适用于Spring Boot项目;MapperScannerConfigurer则更加灵活,适用于传统的Spring项目。
相关问题
mybatis:scan
mybatis:scan是MyBatis框架中的一个扫描器,用于自动扫描MyBatis的Mapper接口,并将这些接口注册为Spring的Bean。与MapperScannerConfigurer不同的是,mybatis:scan是基于Spring Boot的自动配置,可以更加方便地进行配置和使用。
在使用mybatis:scan时,需要在Spring Boot的配置文件中添加以下配置:
```
mybatis:
mapper-locations: classpath*:com/example/mapper/*.xml
type-aliases-package: com.example.entity
mapper-scan-base-package: com.example.mapper
```
其中,mapper-locations指定Mapper XML文件所在的位置,type-aliases-package指定实体类所在的包名,mapper-scan-base-package指定Mapper接口所在的包名。
使用mybatis:scan可以更加方便地进行MyBatis的配置和使用,同时也可以提高开发效率。
mybatis-spring:scan
mybatis-spring:scan 是 MyBatis Spring 整合框架中的一个用于扫描 MyBatis Mapper 接口的注解。它可以让 MyBatis 自动扫描指定的 Mapper 接口,并将其注册为 MyBatis 的 Mapper。使用该注解后,就不需要在 MyBatis 配置文件中手动添加 Mapper 映射器了。
在使用该注解时,需要在 Spring 配置文件中添加如下配置:
```xml
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper"/>
</bean>
```
其中,basePackage 指定了 Mapper 接口所在的包路径,多个包可以用逗号或分号隔开。这样,MyBatis Spring 整合框架会自动扫描指定的包,并将其中的 Mapper 接口注册为 MyBatis 的 Mapper。
需要注意的是,MapperScannerConfigurer 的注入顺序需要放在 SqlSessionFactoryBean 的后面。