13.3.3 部署DAO层
通过前面的介绍不难发现,MyBatis
的持久化DAO
接口只需要通过SqlSession
的getMapper
方法获得对应的接口实例,即可以调用接口的方法完成数据库操作。而在Spring
和MyBatis
整合的应用中,由Spring
容器负责生成并管理DAO
组件。
MyBatis
社区自己开发了一个Mybatis-Spring
中间件用来满足MyBatis
用户整合Spring
的需求。通过SqlSessionFactoryBean
类,可以将SqlSessionFactory
纳入IoC
容器内。
在使用Spring
管理DAO
组件之前,必须要为其提供对应的数据源,本应用使用C3PO
数据源。
db.properties
1 2 3 4 5 6 7 8
| dataSource.driverClass=com.mysql.jdbc.Driver dataSource.jdbcUrl=jdbc:mysql://127.0.0.1:3306/hrm_db dataSource.user=root dataSource.password=root dataSource.maxPoolSize=20 dataSource.maxIdleTime = 1000 dataSource.minPoolSize=6 dataSource.initialPoolSize=5
|
配置了所需的数据源之后,程序就可以在此数据源基础上配置SqlSessionFactory
对象。配置SqlSessionFactory
的代码如下:
applicationContext.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?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:mybatis="http://mybatis.org/schema/mybatis-spring" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd"> <mybatis:scan base-package="org.fkit.hrm.dao"/> <context:component-scan base-package="org.fkit.hrm"/> <context:property-override location="classpath:db.properties"/> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"/> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource"/> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource"/> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
|
<mybatis:scan base-package="org.fkit.hrm.dao"/>
标签,会扫描org.fkit.hrm.dao
包下面的所有接口作为Spring
的Bean
配置,之后可以进行依赖注入。