Spring宣告式事務的兩種實現方式
Spring中事務分為程式設計式事務和宣告式事務。程式設計式事務由於需要在程式碼中硬編碼,在實際專案開發中比較少用到。實際開發中用的比較多的就是宣告式事務。
宣告式事務又分為基於配置的和基於@Transactional
註解的。
1. 基於配置的宣告式事務
- 配置事務管理器
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
- 配置需要加入事務的規則
<tx:advice id="iccardTxAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/>
<tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
<tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
<tx:method name="create*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
<tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="get*" propagation="SUPPORTS" />
<tx:method name="select*" propagation="SUPPORTS" />
<tx:method name="query*" propagation="SUPPORTS" />
</tx:attributes>
</tx:advice>
<!-- 把事務控制在service層 -->
<aop:config>
<aop:pointcut id="txPointcut" expression="execution(public * com.zkzong.service.*.*(..))" />
<aop:advisor pointcut-ref="txPointcut" advice-ref="iccardTxAdvice" />
</aop:config>
2. 基於@Transactional註解的宣告式事務
- 配置事務管理器
<!-- 定義事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!--使用註釋事務 -->
<tx:annotation-driven transaction-manager="transactionManager" />
- 在需要加入事務的方法或者類上新增@Transactional
相關文章
- Spring boot +mybatis 實現宣告式事務管理Spring BootMyBatis
- Spring的四種宣告式事務的配置-Hibernate事務Spring
- 分散式事務的幾種實現方式分散式
- JavaScript 函式的兩種宣告方式JavaScript函式
- Spring-宣告式事務Spring
- 三 Spring 宣告式事務Spring
- Spring宣告式事務控制Spring
- Spring的事務管理(二)宣告式事務管理Spring
- javascript兩種宣告函式方式的區別JavaScript函式
- Spring宣告式事務@Transactional使用Spring
- spring宣告式事務管理配置Spring
- Spring Boot 中實現定時任務的兩種方式Spring Boot
- Spring實現IOC容器的兩種實現方式Spring
- Spring分散式事務XA事務(兩段提交2PC)實現Spring分散式
- Spring @Transactional 宣告式事務揭祕Spring
- 深刻理解Spring宣告式事務Spring
- Spring宣告式事務控制原理之宣告式事務的重要元件在AOP中的應用Spring元件
- 分散式事務的一種實現方式--狀態流轉分散式
- Spring定時器的兩種實現方式Spring定時器
- 各種分散式事務的實現方式適用的場景分散式
- Spring事務配置的五種方式Spring
- 五(二)、spring 宣告式事務xml配置SpringXML
- 全面分析 Spring 的程式設計式事務管理及宣告式事務管理Spring程式設計
- Spring筆記(4) - Spring的程式設計式事務和宣告式事務詳解Spring筆記程式設計
- Spring中的AOP,以及宣告式事務 @Transactional無法攔截事務Spring
- javascript函式宣告兩種主要方式簡單介紹JavaScript函式
- Spring宣告式事務純xml模式回顧SpringXML模式
- JavaEE(12)Spring整合Mybaits、宣告式事務JavaSpringAI
- spring宣告式事務無法關閉sessionSpringSession
- Spring事務的介紹,以及基於註解@Transactional的宣告式事務Spring
- Springboot資料庫事務處理——Spring宣告式事務Spring Boot資料庫
- Spring Boot2 系列教程(十六)定時任務的兩種實現方式Spring Boot
- XA式、非XA式Spring分散式事務的實現Spring分散式
- 筆記53-Spring jdbcTemplate&宣告式事務筆記SpringJDBC
- 使用Spring Boot實現分散式事務Spring Boot分散式
- Spring MVC + Mybatis + Spring Aop宣告式事務管理沒有作用SpringMVCMyBatis
- Spring Boot 實現定時任務的 4 種方式Spring Boot
- Spring宣告式事務注意點,以及不生效情況Spring