SSM整合(二):Spring4與Mybatis3整合

上一節測試好了Mybatis3,接下來整合Spring4! java

1、添加spring上下文配置 mysql

src/main/resources/目錄下的spring新建spring上下文配置文件applicationContext-dao.xml web

注: spring

applicationContext-dao.xml,  用於管理數據庫, sql

applicationContext-service.xml   用於配置service 數據庫

    applicationContext-mvc.xml  用於集成springmvc配置文件,以此類推 apache

添加內容以下: spring-mvc

 

<?xml version="1.0"encoding="UTF-8"?> session

<beans mybatis

    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:mvc="http://www.springframework.org/schema/mvc"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:jdbc="http://www.springframework.org/schema/jdbc"

    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.xsd

        http://www.springframework.org/schema/mvc

        http://www.springframework.org/schema/mvc/spring-mvc.xsd

        http://www.springframework.org/schema/jdbc

        http://www.springframework.org/schema/jdbc/spring-jdbc.xsd      

       http://www.springframework.org/schema/tx

       http://www.springframework.org/schema/tx/spring-tx.xsd      

        http://directwebremoting.org/schema/spring-dwr/spring-dwr-3.0.xsd ">

    <!--註解掃描器  -->

    <context:annotation-config />

    <context:component-scan base-package="com.ssm.demo2.controller">

    </context:component-scan>

 

    <!-- 配置dataSource 使用dbcp鏈接池 註釋 -->

    <!--

    <bean id="dataSource"   class="org.apache.commons.dbcp.BasicDataSource">

       <property name="driverClassName"   value="com.mysql.jdbc.Driver" />

       <property name="url"     value="jdbc:mysql://127.0.0.1:3306/mybatis?                              characterEncoding=utf8" />

       <property name="username"   value="root" />

       <property name="password"   value="root" />

    </bean>

    -->

 

<!-- 加載數據源配置 -->

    <context:property-placeholder location="classpath:db.properties"/>

    <!-- 配置dataSource 使用dbcp鏈接池-->

    <bean      id="dataSource"     class="org.apache.commons.dbcp.BasicDataSource">

       <property name="driverClassName"   value="${jdbc.driverClass}" />

       <property name="url"     value="${jdbc.jdbcUrl}"/>

       <property name="username"   value="${jdbc.user}"/>

       <property name="password"   value="${jdbc.password}"/>

       <!-- 設置數據庫鏈接池的最大鏈接數 -->

        <property name="maxActive" value="${jdbc.maxPoolSize}" />

        <!-- 設置數據庫鏈接池的初始化鏈接數 -->

        <property name="initialSize" value="${jdbc.initPoolSize}"/>

    </bean>

 

    <bean

       id="sqlSessionFactory"   class="org.mybatis.spring.SqlSessionFactoryBean">

       <!--dataSource屬性指定要用到的鏈接池 -->

       <property name="dataSource"   ref="dataSource" />

       <!--configLocation屬性指定mybatis的核心配置文件 -->

       <property

           name="configLocation"  value="mybatis/mybatis_config.xml" />

    </bean>

<!--註冊UserMapper映射  -->

    <bean

       id="userMapper"   class="org.mybatis.spring.mapper.MapperFactoryBean">

        <!--sqlSessionFactory屬性指定要用到的SqlSessionFactory實例 -->

       <property name="sqlSessionFactory"     ref="sqlSessionFactory" />

       <!--mapperInterface屬性指定映射器接口,用於實現此接口並生成映射器對象 -->

       <property name="mapperInterface" value="com.ssm.demo2.mapper.UserMapper"/>

    </bean>

</beans>

 

2、測試

mybatis_config.xml配置中有關數據庫的配置信息註釋掉!

src/test/main 目錄下新建Mybatis_Spring_Test.java進行測試:

 

public class Mybatis_Spring_Test {

 

    private ApplicationContext ctx;

    @Before

    public void setUp() throws Exception {

       String configpath="spring/applicationContext-dao.xml";

       ctx=new ClassPathXmlApplicationContext(configpath);

    }

 

    @Test

    public void test() throws Exception {

       //測試是否能正常加載配置文件

       System.out.println(ctx);

       UserMapper userMapper=ctx.getBean(UserMapper.class);

       List<User> users=userMapper.findUserList("");

       System.out.println(users.size());

    }

 

}

 

結果:

測試ok!

3、把註冊mapper的方式 改成自動掃描方式

applicationContext-dao.xml註冊mapper是手動配置的,在項目中這樣的配置會不少,很不方便,改爲自動掃描式!

註釋掉如下配置:

<!--

<bean

       id="userMapper"   class="org.mybatis.spring.mapper.MapperFactoryBean">

       <!--sqlSessionFactory屬性指定要用到的SqlSessionFactory實例 -->

       <property name="sqlSessionFactory"     ref="sqlSessionFactory" />

       <!--mapperInterface屬性指定映射器接口,用於實現此接口並生成映射器對象 -->

       <property name="mapperInterface" value="com.ssm.demo2.mapper.UserMapper"/>

    </bean>

-->

 

添加以下配置:

    <!-- mybatis自動掃描包下的mapper -->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="basePackage"value="com.ssm.demo2.mapper"/>

        <!-- optional unless there are multiple session factories defined -->

        <property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>

</bean>

 

最後添加事務管理

<!-- 數據庫的事務管理器配置 -->

    <bean id="transactionManager"

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean>

    <!-- 使用annotation定義數據庫事務,這樣能夠在類或方法中直接使用@Transactional註解來聲明事務 -->

<tx:annotation-driven transaction-manager="transactionManager" />

 

 

 

現測試經過OK

注:在src/main/resourcemybatis目錄下的UserMapper.xml在前一節中改爲自動掃描式後,能夠去掉,一樣在配置自動掃描加載mapper後,mybatis_config.xml中的功能也所有由spring進行了管理,也是能夠去掉滴!!但了爲結構清晰,保留這二個配置文件!

Mybatis3Spring4整合成功!Spring4請查看相關詳細文章!

最後一節整合SpringMVC



相關文章
相關標籤/搜索