Spring review--事務的傳播特性
Spring的事務有兩種管理方式:程式設計式事務管理,宣告式事務管理。程式設計式就是在java程式碼中實現的事務,跟jdbc的事務類似。宣告式事務在xml中配置出來的,迎合了Spring侵入性小的特點。
事務的傳播特性,常用的是第一個:
PROPAGATION_REQUIRED |
如果存在一個事物,則支援當前事務。如果沒有事務則開啟。 |
PROPAGATION_SUPPORTS |
如果存在一個事務,支援當前事務。如果沒有事務,則非事務的執行 |
PROPAGATION_MANDATORY |
如果已經存在一個事務,則支援當前事務。如果沒有一個活動的事務,則丟擲異常 |
PROPAGATION_REQUIRES_NEW |
總是開啟一個新的事務,如果一個事務已經存在,則將這個存在的事務 掛起。 |
PROPAGATION_Not_SUPPORTED |
總是非事務的執行,並掛起任何存在的事務。 |
PROPAGATION_NEVER |
總是非事務的執行,如果存在一個活動事務,則丟擲異常 |
PROPAGATION_NESTED |
如果一個活動的事務存在,則執行在一個巢狀的事務中,如果沒有活動事務,則按required屬性執行。 |
下面是宣告式事務管理的配置檔案內容:
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire="byName">
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 配置事務管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution (* com.bjpowernode.usermgr.manager.*.*)"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
<!-- 事務的傳播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
</tx:advice>
</beans>
</span></span>
程式設計式事務跟宣告式事務試用場景不同,有很少的事務操作時,程式設計式事務比較合適,針對性比較強;如果應用中存在大量事務操作,那麼宣告式事務管理通常是值得的,它將事務管理與業務邏輯隔離,配置成本極大降低。
相關文章
- 什麼是事務、事務特性、事務隔離級別、spring事務傳播特性?Spring
- spring事務的傳播Spring
- Spring事務的傳播屬性Spring
- spring的事務傳播機制Spring
- Spring 事務的傳播行為Spring
- Spring 事務傳播行為Spring
- spring事務之傳播性Spring
- spring事務傳播機制Spring
- Spring事務傳播行為Spring
- Spring事務的傳播行為案例分析Spring
- Spring事務傳播行為詳解Spring
- Spring中事務的傳播屬性詳解Spring
- [轉帖]帶你讀懂Spring 事務——事務的傳播機制Spring
- Spring 七種事務傳播性介紹Spring
- java spring巢狀事務詳情和事務傳播型別JavaSpring巢狀型別
- CRUD更要知道的Spring事務傳播機制Spring
- Spring Boot事務傳播機制 - DZone JavaSpring BootJava
- Spring事務的傳播行為和隔離級別Spring
- Spring事務配置的五種方式和spring裡面事務的傳播屬性和事務隔離級別Spring
- Spring事務:傳播行為與隔離級別Spring
- Spring的事務管理(一) Spring事務管理的實現,事務的屬性(隔離級別,傳播行為,只讀)Spring
- [轉帖]Spring事務傳播屬性之REQUIRES_NEW用法SpringUI
- 通過實際案例摸清楚Spring事務傳播的行為Spring
- 事務回顧之事務特性_併發問題_隔離級別_傳播行為
- spring事務的傳播屬性是什麼?它會影響什麼?Spring
- 18個示例詳解 Spring 事務傳播機制(附測試原始碼)Spring原始碼
- 事務的ACID特性
- spring事務傳播的Propagation.REQUIRES_NEW以及NEVER MANDATORY驗證,及其失效的詭異問題SpringUI
- 資料庫事務以及事務的四個特性資料庫
- Springboot mini - Solon詳解(四)- Solon的事務傳播機制Spring Boot
- 事務4大特性
- Spring的事務管理Spring
- spring 事務Spring
- spring事務Spring
- Spring的事務管理(二)宣告式事務管理Spring
- Spring事務專題(四)Spring中事務的使用、抽象機制及模擬Spring事務實現Spring抽象
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- Spring中的事務控制Spring