1. 程式人生 > >Spring事務配置-註解篇

Spring事務配置-註解篇

事務註解,可以作用在類或者public方法上,寫在類上的時候,對該類下的所有的public的方法有用。假如方法上加了final修飾,將會導致事務不可用。

具體參考:https://blog.csdn.net/bao19901210/article/details/41724355

舉例說明:myBatis為例   基於註解的宣告式事務管理配置@Transactional

spring.xml

<span style="background-color: rgb(255, 255, 255);"><span style="background-color: rgb(255, 204, 153);"><!-- mybatis config -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation">
            <value>classpath:mybatis-config.xml</value>
        </property>
    </bean>
    
    <!-- mybatis mappers, scanned automatically -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage">
            <value>
                com.baobao.persistence.test
            </value>
        </property>
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>
    
    <!-- 配置spring的PlatformTransactionManager,名字為預設值 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    
    <!-- 開啟事務控制的註解支援 -->
    <tx:annotation-driven transaction-manager="transactionManager"/></span></span>

新增tx名字空間

<span style="background-color: rgb(255, 255, 255);"><span style="background-color: rgb(255, 204, 153);">xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
 
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"</span></span>