spring mybatis mapper接口注解方式注入
来源:互联网 发布:知乎一个笑话笑一辈子 编辑:程序博客网 时间:2024/04/27 15:32
最近做项目使用mybatis-generator生成mybatis的mapper.xml映射文件和mapper接口。
原来采用spring-bean的方式显示注入,代码如下:
<bean id="articleMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.kuanrf.gs.article.dao.ArticleMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /></bean>
发现每个mybatis的mapper接口都这么配置的话,太麻烦。现优化采用spring统一扫描自动注入。
application_spring_db.xml
<?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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd"> <!-- 配置dbcp数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driver}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="initialPoolSize" value="${connection_pools.initial_pool_size}" /> <property name="minPoolSize" value="${connection_pools.min_pool_size}" /> <property name="maxPoolSize" value="${connection_pools.max_pool_size}" /> <property name="maxIdleTime" value="${connection_pools.max_idle_time}" /> <property name="acquireIncrement" value="${connection_pools.acquire_increment}" /> <property name="checkoutTimeout" value="${connection_pools.checkout_timeout}" /> </bean> <!-- 配置mybatisSqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis/mybatis.xml"/> <property name="mapperLocations" value="classpath*:com/itclj/magpie/**/*Mapper.xml"/> </bean> <!-- 配置SqlSessionTemplate --> <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <!-- 配置mybatis mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.itclj.magpie.**.dao"/> <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/> </bean> <!-- 事务配置 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 使用annotation注解方式配置事务 --> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
其中如下代码为spring自扫描所有dao包并把其下的所有mybatis接口文件装配入容器。
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.itclj.magpie.**.dao"/> <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/></bean>
mybatis接口mapper需要加@Repository注解,方可直接在Service层直接自动装配注入。
mybatis接口mapper举例如下:
@Repositorypublic interface UserBeanMapper extends BaseMapper<UserBean,UserBeanExample,Long> {}
Service层注入mybatis接口mapper的时候需要在构造方法中注入,这样注入mapper实例才不会空。
@Service(value = "userService")public class UserServiceImpl extends BaseServiceImpl<UserBean, UserBeanExample, Long> implements UserService { @Autowired() public UserServiceImpl(UserBeanMapper userBeanMapper) { this.setMapper(userBeanMapper); }}
工程目录结构如下图
2 1
- spring mybatis mapper接口注解方式注入
- spring mybatis mapper接口注解方式注入
- spring mybatis mapper接口注解方式注入
- spring+sprinmvc+mybatis基本整合(二)--基于spring注解mybais非注解非Mapper接口方式
- spring mybatis 整合后mapper接口注入失败问题
- mybatis+spring中的Mapper通过非自动注入方式获取Mapper代理对象(Spring 工厂)
- springMVC mybatis整合dao接口(mapper接口) spring注入失败
- myBatis Mapper接口注入null指针
- 【Mybatis源码剖析】Spring中获取 Mybatis Mapper接口(注解Autowired),并调用过程剖析
- 基于注解的Mybatis mapper 接口注意事项
- Spring 整合 MyBatis,Mapper注入失败
- spring注解方式自动注入接口的实现子类
- spring注解方式自动注入接口的实现子类
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring - 大新博客
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- 树的子结构
- 0630第五讲继承(4)抽象基类、纯虚函数、多继承
- 编辑文本框多行显示,带边框
- java与多线程
- 编写C语言版本的卷积神经网络CNN之四:CNN的学习及测试结果的比较
- spring mybatis mapper接口注解方式注入
- 振动器 Vibrator
- 谈谈Backlog梳理活动
- Java Sort
- centos 7 启动盘制作和grub rescue引导恢复
- Maven - POM
- Celery用户指引-------------Workers指引
- Hbase和solr在海量数据查询中的应用
- [从codewars学习到的JS系列2]正则表达式中的exec()与字符串的match()方法区别