1. 程式人生 > >MyBatis框架與Spring框架的結合方式

MyBatis框架與Spring框架的結合方式

rop 功能 自動掃描 加載文件 bat tro java context drive

 <?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:aop="http://www.springframework.org/schema/aop"
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.springftamework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
	<!-- 引入database.properties -->
	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="location">
		<value>classpath:database.properties</value>
	</property>
	</bean>
	<!--
		配置數據源加載文件 ID起別名 class引用封裝類 
		替換掉了mybatis配置文件中的數據庫配置部分
	-->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
			destroy-method="close">
		<!--引入數據庫驅動 -->
		<property name="driverClassName" value="${driver}"/>
		<!-- 引入數據庫地址 -->
		<property name="url" value="${url}"/>
		<!-- 引入數據庫用戶名 -->
		<property name="username" value="${user}"/>
		<!-- 引入數據庫用戶密碼 -->
		<property name="password" value="${password}"/>
	</bean>
	<!-- 
		配置SqlSessionFactoryBean:創建SqlSessionFactoryBuilder ID起別名 class引用封裝類
		替換掉了mybatis中的創建實例部分以及 配置文件引用 ,SQL映射部分
	-->
	<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 引用數據源組件  -->
		<property name="dataSource" ref="dataSource"/>
		<!-- 由spring引用MyBatis 配置文件中的配置 -->
		<property name="configLocation" value="classpath:mybatis-config.xml"/>
		<!-- 配置SQL映射文件信息 -->
		<!-- <property name="mapperLocations">
			<list>
				<value>classpath:cn/smbms/dao/**/*.xml</value>
			</list>
		</property> -->
	</bean>
	<!-- 
	采用數據庫映射器(MapperFactoryBean)的方式對數據庫操作(高級 采用mybatis框架的dao層模式)
	還有一種方式為采用SqlSessionTemplate實現數據庫操作(較為低級 采用無框架普通java的dao層模式)
	根據Mapper接口獲取Mapper對象 它封裝了原有的SqlSession.getMapper()功能的實現 
	-->
	<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
		<!-- 指定映射器 只能是接口類型 -->
		<property name="mapperInterface" value="cn.smbms.dao.UserMapper"/>
		<!-- 註入SqlSessionFactory以提供SqlSessionTemplate實例 -->
		<property name="sqlSessionFactory" ref="SqlSessionFactory"/>
	</bean>
	<!--
            自動掃描指定包下的Mapper接口 並將他們直接註冊為MapperFactoryBean
	 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="cn.smbms.dao"/>
	</bean> 
	-->
	<bean id="userService" class="cn.smbms.service.impl.UserServiceImpl">
		<property name="userMapper" ref="userMapper"/>
	</bean>
</beans>

MyBatis框架與Spring框架的結合方式