當前位置:首頁 » 存儲配置 » spring事務怎麼配置

spring事務怎麼配置

發布時間: 2024-08-15 23:00:11

『壹』 spring如何管理事務

Spring提供了多種方式來管理事務,包括使用註解、XML配置和編程方式。

使用註解方式:
1. 在配置文件中啟用事務管理器:可以通過配置文件(如applicationContext.xml)中的標簽來啟用事務管理器。
2. 註解事務:在需要添加事務的方法上添加@Transaction註解,可以設置事務的屬性,如傳播行為、隔離級別等。

使用XML配置方式
1. 配置事務管理器:在配置文件中定義事務管理器,指定數據源和其他相關屬性。
2. 配置事務通知:通過標簽配置切入點和通知,指定要應用事務的方法。
3. 配置事務屬性:通過標簽配置事務的屬性,包括傳播行為、隔離級別等。

使用編程方式:
1. 獲取事務管理器:使用@Autowired或@Resource註解注入事務管理器。
2. 編程式事務管理:在需要添加事務的方法中,使用TransactionTemplate來執行資料庫操作,並設置事務的屬性,如傳播行為、隔離級別等。

無論使用何種方式,Spring事務管理器會在方法執行前開啟一個事務,方法執行完成後根據返回值來決定是提交事務還是回滾事務。如果方法中拋出了異常,則事務會自動回滾,否則事務將會提交。

『貳』 如何在spring中配置跨資料庫的事務

1.使用註解的方式
<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- 使用annotation定義資料庫事務,這樣可以在類或方法中直接使用@Transactional註解來聲明事務 -->
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>

2.使用事務管理器來管理
<?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:jee="http://www.springframework.org/schema/jee"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<aop:config>
<!-- 切入點指明了在執行com.zxt.service包中的所有方法時產生事務攔截操作 -->
<aop:pointcut id="Methods"
expression="execution(* com.zxt.service.*.*(..))" />
<!-- 定義了將採用何種攔截操作,這里引用到 txAdvice -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="Methods" />
</aop:config>

<!-- 事務通知操作,使用的事務管理器引用自transactionManager -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 指定哪些方法需要加入事務 -->
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<!-- read-only="true":其餘方法只讀格式,加強其安全性 -->
<tx:method name="*" read-only="true" propagation="NOT_SUPPORTED" />
</tx:attributes>
</tx:advice>

</beans>

『叄』 spring的事務機制,以及是如何管理的

事務管理可以幫助我們保證數據的一致性,對應企業的實際應用很重要。

Spring的事務機制包括聲明式事務和編程式事務。

編程式事務管理:Spring推薦使用TransactionTemplate,實際開發中使用聲明式事務較多。

聲明式事務管理:將我們從復雜的事務處理中解脫出來,獲取連接,關閉連接、事務提交、回滾、異常處理等這些操作都不用我們處理了,Spring都會幫我們處理。

聲明式事務管理使用了AOP面向切面編程實現的,本質就是在目標方法執行前後進行攔截。在目標方法執行前加入或創建一個事務,在執行方法執行後,根據實際情況選擇提交或是回滾事務。

如何管理的:

Spring事務管理主要包括3個介面,Spring的事務主要是由他們三個共同完成的。

1)PlatformTransactionManager:事務管理器--主要用於平台相關事務的管理

主要有三個方法:commit 事務提交;

rollback 事務回滾;

getTransaction 獲取事務狀態。

2)TransactionDefinition:事務定義信息--用來定義事務相關的屬性,給事務管理器PlatformTransactionManager使用

這個介面有下面四個主要方法:

getIsolationLevel:獲取隔離級別;

getPropagationBehavior:獲取傳播行為;

getTimeout:獲取超時時間;

isReadOnly:是否只讀(保存、更新、刪除時屬性變為false--可讀寫,查詢時為true--只讀)

事務管理器能夠根據這個返回值進行優化,這些事務的配置信息,都可以通過配置文件進行配置。

3)TransactionStatus:事務具體運行狀態--事務管理過程中,每個時間點事務的狀態信息。

例如它的幾個方法:

hasSavepoint():返回這個事務內部是否包含一個保存點,

isCompleted():返回該事務是否已完成,也就是說,是否已經提交或回滾

isNewTransaction():判斷當前事務是否是一個新事務

聲明式事務的優缺點:

優點

不需要在業務邏輯代碼中編寫事務相關代碼,只需要在配置文件配置或使用註解(@Transaction),這種方式沒有侵入性。

缺點

聲明式事務的最細粒度作用於方法上,如果像代碼塊也有事務需求,只能變通下,將代碼塊變為方法。

熱點內容
售茶源碼 發布:2024-11-25 08:37:29 瀏覽:462
壓縮包改直鏈 發布:2024-11-25 08:34:33 瀏覽:610
安卓機的照片如何傳送到蘋果機上 發布:2024-11-25 08:32:48 瀏覽:916
手游伺服器怎麼找ip 發布:2024-11-25 08:23:10 瀏覽:751
c語言名次 發布:2024-11-25 08:04:22 瀏覽:55
新浪雲伺服器登錄 發布:2024-11-25 08:04:21 瀏覽:853
工控機伺服器電腦的區別 發布:2024-11-25 08:04:21 瀏覽:513
Python對比matlab 發布:2024-11-25 07:45:58 瀏覽:307
ovt機頂盒管理員密碼多少 發布:2024-11-25 07:45:58 瀏覽:377
win10與linux雙系統 發布:2024-11-25 07:40:05 瀏覽:658