使用Spring扫描Mybatis的mapper接口的三种配置
Spring扫描Mybatis的mapper接口的配置
1.前言
mybatis支持与spring结合使用,使得mybatis中的mapper接口可以作为spring容器中的bean被应用代码中相关类,如Service类,通过@Autowired自动注入进来。
在使用方面需要在项目中引入以下包:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency>
2. 在spring中可以通过三种方式
来自动扫描获取应用代码的mybatis相关的mapper接口定义:
2.1在applicationContext.xml中使用<mybatis:scan />
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> ... <!-- mybatis --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mybatis/mapper/**/*.xml" /> <property name="configLocation" value="classpath:mybatis/mybitas-config.xml" /> </bean> <mybatis:scan base-package="cn.cggeeker.dao"/> ... </beans>
2.2在applicationContext.xml中
使用bean标签注册MapperScannerConfigurer,即:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> ... <!-- mybatis --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mybatis/mapper/**/*.xml" /> <property name="configLocation" value="classpath:mybatis/mybitas-config.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.cggeeker.dao" /> </bean> ... </beans>
2.3如果应用是使用Java配置方式而不是XML
则在@Configuration配置类使用@MapperScan或者@MapperScans注解:
@Configuration @MapperScan("cn.cggeeker.dao") public class AppConfig { @Bean public DataSource dataSource() { return new PooledDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/test", "root", "root"); } @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBeansessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); return sessionFactory.getObject(); } }
Spring配置扫描mybatis的mapper文件注意
一般会将不业务的mapper文件放到不同的包中:
spring配置扫描就需要配置下面的方式(两个*):
<!-- mybatis文件配置,扫描所有mapper文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource" p:configLocation="classpath:conf/mybatis-config.xml" p:mapperLocations="classpath:mapper/**/*.xml" />
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot如何监听redis Key变化事件案例详解
项目中需要监听redis的一些事件比如键删除,修改,过期等,下面这篇文章主要给大家介绍了关于SpringBoot如何监听redis Key变化事件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-08-08SpringBoot中@RequestBody不能和Multipart同时传递的问题解决
本文主要介绍了SpringBoot中@RequestBody不能和Multipart同时传递的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-04-04基于MockMvc进行springboot调试(SpringbootTest)
这篇文章主要介绍了基于MockMvc进行springboot调试(SpringbootTest),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-10-10Spring Boot2解决idea console 控制台输出乱码的问题
这篇文章主要介绍了Spring Boot2解决idea console 控制台输出乱码的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07Jpa 如何使用@EntityListeners 实现实体对象的自动赋值
这篇文章主要介绍了Jpa 如何使用@EntityListeners 实现实体对象的自动赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08详解使用Spring的BeanPostProcessor优雅的实现工厂模式
这篇文章主要介绍了详解使用Spring的BeanPostProcessor优雅的实现工厂模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07
最新评论