三 Spring 宣告式事務
配置宣告式事務
配置步驟
匯入tx和aop名稱空間
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
定義事務管理器Bean,併為其注入資料來源Bean
通過tx:advice配置事務增強,繫結事務管理器並針對不同方法定義事務規則
配置切面,將事務增強與方法切入點組合
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 定義切面 -->
<aop:config>
<aop:pointcut id="serviceMethod"
expression="execution(* cn.smbms.service..*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
</aop:config>
propagation:事務傳播機制
REQUIRED(預設值)
REQUIRES_NEW 、MANDATORY、NESTED
SUPPORTS
NOT_SUPPORTED、NEVER
isolation:事務隔離等級
DEFAULT(預設值)
READ_COMMITTED
READ_UNCOMMITTED
REPEATABLE_READ
SERIALIZABLE
timeout:事務超時時間,允許事務執行的最長時間,以秒為單位。預設值為-1,表示不超時
read-only:事務是否為只讀,預設值為false
rollback-for:設定能夠觸發回滾的異常型別
Spring預設只在丟擲runtime exception時才標識事務回滾
可以通過全限定類名指定需要回滾事務的異常,多個類名用逗號隔開
no-rollback-for:設定不觸發回滾的異常型別
Spring預設checked Exception不會觸發事務回滾
可以通過全限定類名指定不需回滾事務的異常,多個類名用英文逗號隔開
註解配置事務
在Spring配置檔案中配置事務管理類,並新增對註解配置的事務的支援
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
@Transactional
@Service("userService")
public class UserServiceImpl implements UserService {
……
@Transactional(propagation = Propagation.SUPPORTS)
public List<User> findUsersWithConditions(User user) {
// 省略實現程式碼
}}
相關文章
- Spring-宣告式事務Spring
- Spring宣告式事務控制Spring
- Spring宣告式事務@Transactional使用Spring
- spring宣告式事務管理配置Spring
- Spring的事務管理(二)宣告式事務管理Spring
- Spring @Transactional 宣告式事務揭祕Spring
- 深刻理解Spring宣告式事務Spring
- 五(二)、spring 宣告式事務xml配置SpringXML
- Spring宣告式事務控制原理之宣告式事務的重要元件在AOP中的應用Spring元件
- Spring的四種宣告式事務的配置-Hibernate事務Spring
- Spring宣告式事務純xml模式回顧SpringXML模式
- JavaEE(12)Spring整合Mybaits、宣告式事務JavaSpringAI
- Spring boot +mybatis 實現宣告式事務管理Spring BootMyBatis
- spring宣告式事務無法關閉sessionSpringSession
- Spring筆記(4) - Spring的程式設計式事務和宣告式事務詳解Spring筆記程式設計
- 全面分析 Spring 的程式設計式事務管理及宣告式事務管理Spring程式設計
- Springboot資料庫事務處理——Spring宣告式事務Spring Boot資料庫
- Spring宣告式事務的兩種實現方式Spring
- 筆記53-Spring jdbcTemplate&宣告式事務筆記SpringJDBC
- Spring中的AOP,以及宣告式事務 @Transactional無法攔截事務Spring
- Spring MVC + Mybatis + Spring Aop宣告式事務管理沒有作用SpringMVCMyBatis
- Spring事務的介紹,以及基於註解@Transactional的宣告式事務Spring
- Spring宣告式事務注意點,以及不生效情況Spring
- Spring程式設計式和宣告式事務例項講解Spring程式設計
- Spring宣告式事務管理出錯示例與解決之道Spring
- SpringMVC、MyBatis 宣告式事務管理SpringMVCMyBatis
- 宣告式事務能否和程式設計式事務巢狀使用?程式設計巢狀
- 保護億萬資料安全,Spring有“宣告式事務”絕招Spring
- springboot專案-宣告式事務失效Spring Boot
- spring事物配置,宣告式事務管理和基於@Transactional註解的使用Spring
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- Spring Cloud Feign 宣告式服務呼叫SpringCloud
- 宣告式服務呼叫 Spring Cloud FeignSpringCloud
- Spring Data JPA系列4——Spring宣告式數事務處理與多資料來源支援Spring
- Spring Boot 揭祕與實戰(二) 資料儲存篇 - 宣告式事務管理Spring Boot
- Spring宣告式事務報錯"Transaction rolled back because it has been marked as rollback-only"分析...Spring
- Spring/SpringBoot中的宣告式事務和程式設計式事務原始碼、區別、優缺點、適用場景、實戰Spring Boot程式設計原始碼
- 分散式系統(三)——分散式事務分散式