阅读背景:

spring整合mybatis的事物管理配置

来源:互联网 

一、基本配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="https://www.springframework.org/schema/beans"
       xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:aop="https://www.springframework.org/schema/aop"
       xmlns:tx="https://www.springframework.org/schema/tx" xmlns:jdbc="https://www.springframework.org/schema/jdbc"
       xmlns:context="https://www.springframework.org/schema/context"
       xsi:schemaLocation="
     https://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-3.0.xsd
     https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     https://www.springframework.org/schema/jdbc https://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
     https://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     https://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop-3.0.xsd">



    <!-- 连接池配置 -->
    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
        <property name="poolName" value="springHikariCP" />
        <property name="connectionTestQuery" value="SELECT 1" />
        <property name="dataSourceClassName" value="${jdbc.driverClassName}" />
        <property name="dataSourceProperties">
            <props>
                <prop key="url">${jdbc.url}</prop>
                <prop key="user">${jdbc.username}</prop>
                <prop key="password">${jdbc.password}</prop>
                <prop key="cachePrepStmts">true</prop>
                <prop key="prepStmtCacheSize">250</prop>
                <prop key="prepStmtCacheSqlLimit">2048</prop>
            </props>
        </property>
        <!-- 控制自动提交行为 default:true -->
        <property name="autoCommit" value="true"/>
        <!--连接池获取的连接是否只读 default:false-->
        <property name="readOnly" value="false"/>
        <!--最大连接超时时间 default:30秒-->
        <property name="connectionTimeout" value="30000"/>
        <!--最大空闲超时时间 default:10分钟   -->
        <property name="idleTimeout" value="600000"/>
        <!--连接池中一个连接的最大生命周期 default:30分钟-->
        <property name="maxLifetime" value="1800000 "/>
    </bean>
    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
        <constructor-arg ref="hikariConfig" />
    </bean>

    <!-- define the SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:META-INF/mybatis/mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:META-INF/mybatis/mapper/*.xml"/>
    </bean>


    <!-- scan for mappers and let them be autowired -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="annotationClass" value="org.springframework.stereotype.Repository"/>
        <property name="basePackage" value="com.geenk.market.dal"/>
    </bean>

    <!-- 声明编码方式事务 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager" ref="transactionManager"/>
        <!--ISOLATION_DEFAULT 表示由使用的数据库决定  -->
        <property name="isolationLevelName" value="ISOLATION_DEFAULT"/>
        <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
    </bean>
    <!-- 启动使用注解实现声明式事务管理的支持-->
    <tx:annotation-driven transaction-manager="transactionManager" />

</beans>
<?xml version="1.0" encoding="UTF-



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: