mybatis-spring:scan
时间: 2024-02-11 09:08:37 浏览: 141
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 的后面。
相关问题
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xmlns:mybatis="http://mybatis.org/schema/mybatis-spring" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 扫描com.xie下的所有spring的注解--> <context:component-scan base-package="com.xie" /> <!-- 把其他的java等的注解也加入到spring容器管理--> <context:annotation-config/> <!-- 配置文件读取--> <util:properties id="dbConfig" location="classpath:Config.properties"/> <!-- 配置数据源--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="#{dbConfig.driver}"/> <property name="url" value="#{dbConfig.url}"/> <property name="username" value="#{dbConfig.username}"/> <property name="password" value="#{dbConfig.password}"/> </bean> <!-- 创建sessionfacto--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="dataSource" ref="dataSource"/> </bean> <!-- mapper由spring接管--> <!-- 扫描出mapper接口--> <mybatis:scan base-package="com.xie.mapper"/> <!-- 使用注解来完成aop--> <aop:aspectj-autoproxy/> <!-- 使用注释来控制事务--> <tx:annotation-driven/> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 引入数据源--> <property name="dataSource" ref="dataSource"/> </bean> </beans>
这是一个 Spring 配置文件,它包含了以下内容:
1. 声明了 Spring 核心容器的命名空间和 schema 位置;
2. 通过 component-scan 和 annotation-config 扫描和加载指定包下的 Spring 注解和其他注解;
3. 通过 util:properties 声明了一个 id 为 dbConfig 的 properties 文件,用于配置数据源的相关信息;
4. 配置了一个基于 Apache Commons DBCP 的数据源;
5. 配置了一个 MyBatis 的 SessionFactory,指定了 MyBatis 的配置文件和数据源;
6. 配置了 MyBatis 的 Mapper 接口;
7. 使用 aspectj-autoproxy 开启 AOP;
8. 使用 annotation-driven 开启声明式事务,并配置了事务管理器。
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的配置和使用,同时也可以提高开发效率。
阅读全文