宣告式事務管理方式:基於AspectJ的XML方式和基於註解的方式
基於AspectJ的XML方式
<!-- 配置事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事務的通知:(事務的增強) -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="transfer" propagation="REQUIRED" isolation="DEFAULT" />
<!--
<tx:method>標籤中的屬性:
propagation :事務的傳播行為
isolation :隔離級別
read-only :只讀
rollback-for:發生哪些異常回滾
no-rollback-for:發生哪些異常不要回滾
timeout :過期資訊
-->
</tx:attributes>
</tx:advice>
<!-- 配置aop的切面 -->
<aop:config>
<!-- 切入點 前面*代表返任意回值 ,其中AccountService+.*(..)的 +代表子類 / .*任意方法 / (..)任意引數-->
<aop:pointcut expression="execution(* demo3.AccountService+.*(..))" id="pointcut1"/>
<!-- 切面
<aop:advisor> :一個切入點,一個通知
<aop:aspect> :多個切入點,多個通知 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/>
</aop:config>
主要是aop方式的事務管理
基於註解的方式
業務層實現類添加註解<!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 開啟註解事務 --> <tx:annotation-driven transaction-manager="transactionManager"/>
/** * 轉賬案例的業務層實現類 * @author kyulin * * @Transactional註解中的屬性: * propagation :傳播行為 * isolation :隔離級別 * readOnly :只讀 * rollbackFor :發生哪些異常回滾 * noRollbackFor:發生哪些異常不回滾 */ @Transactional //@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT,readOnly=true) public class AccountServiceImpl implements AccountService { //注入轉賬的DAO的類 private AccountDao accountDao; public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } /** * * @param out :轉出的賬號 * @param in :轉入的賬號 * @param money :轉賬金額 */ @Override public void transfer(String out, String in, Double money) { // TODO Auto-generated method stub accountDao.outMoney(out, money); int d = 1/0; accountDao.inMoney(in, money); } }
總結:
相關推薦
spring宣告式事務管理:基於註解的方式
1)在spring.xml中配置事務管理器DataSourceTransactionManager,<bean id="txManager" class="org.springframework.
宣告式事務管理方式:基於AspectJ的XML方式和基於註解的方式
基於AspectJ的XML方式 <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataS
第十一講:11.spring宣告式事務管理-xml方式
1,複製專案spring404 ,改名spring404-2,修改BankServiceImpl類,刪除宣告式事務的程式碼。宣告式事務管理的方式缺點是,事務程式碼嚴重嵌入邏輯程式碼中 package com.cruise.service.impl; import org.springframewor
spring宣告式事務管理方式( 基於tx和aop名字空間的xml配置[email
轉自:https://www.cnblogs.com/niceyoo/p/8732891.html 1. 宣告式事務管理分類 宣告式事務管理也有兩種常用的方式, 一種是基於tx和aop名字空間的xml配置檔案,另一種就是基於@Transactional註解。 顯然基於註解的方式更簡單
淺談spring事務管理的2種方式:程式設計式事務管理和宣告式事務管理;以及@Transactional(rollbackFor=Exception.class)註解用法
事務的概念,以及特性: 百度百科介紹: ->資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過
spring事務管理之四:宣告式事務管理:使用事務註解的方式
事務註解的方式,相對xml的方式來說,有優點,無需配置需要事務的業務方法的切點和事務屬性。但是也有缺點,就是需要在每個需要事務的業務方法上加上一個註解@Transaction,否則事務不會生效。 這裡沿用之前spring事務管理的程式碼: pom.xml依賴部分: <depen
spring事務管理之三:宣告式事務管理:使用xml配置檔案的方式
這種方式是開發中常見的一種方式:利用aop的思想,將需要事務管理的業務方法通過xml配置的方式,將事務管理加在該類的相關方法上。這種方法的優點是,一次xml配置,後期不用關心業務類增加或者減少,通過xml中配置的匹配資訊,會去找業務類所在的包和方法,然後加上事務。 重點是配置<tx:a
spring事務管理之二:宣告式事務管理:使用代理方式
spring宣告式事務管理,分為三種方式,分別是: 1、使用代理類TransactionProxyFactoryBean的方式 2、使用aspectj+xml配置的方式 3、使用事務註解的方式 其中後面兩種是比較常用的,使用xml和註解的方式。 這裡介紹使用代理類Transa
深入解讀Spring Framework事務管理(第四彈:基於@Transactional註解的宣告式事務管理)
基於註解的宣告式事務,主要使用的是@Transactional註解,下面我們來具體看一下。 使用@Transactional註解實現事務的例子 // 這個service我們要將他事務化 @Transactional public class Defa
宣告式事務管理三:基於註解的配置
這種基於註解配置的宣告式事務管理方法式很簡單,很方便 (1) 像之前一樣恢復到初始狀態 (2) 配置事務管理器(注入連線池) (3) 開啟註解
宣告式事務管理二:基於AspectJ的xml配置
下面講述的是宣告式事務管理的第二種方法,是基於AspectJ的xml配置的 (1) 引入AspectJ的java包(一種簡化的操作)並copy到web-INF (2) 配置事務管理器 &n
第十二講:12,spring宣告式事務管理-註解式
1,複製專案spring404 ,改名spring404-3。修改BankServiceImpl類,添加註解,package com.cruise.service.impl;import org.springframework.transaction.annotation.Tra
spring事物配置,宣告式事務管理和基於@Transactional註解的使用
spring支援程式設計式事務管理和宣告式事務管理兩種方式。 程式設計式事務管理使用TransactionTemplate或者直接使用底層的PlatformTransactionManager。對於程式設計式事務管理,spring推薦使用Transactio
9.spring:事務管理(下):宣告式事務管理
宣告式事務管理 sprin的宣告式事務是管理AOP技術實現的事務管理,其本質是是對方法前後進行攔截,然後 在目標方法開始之前建立或者加入一個事務,在執行完成目標方法之後根據執行情況提交或者回滾事務。 宣告式事務管理優點:不需要通過程式設計的方式管理事務,因而不需要在業務邏輯程
xml方式實現spring的宣告式事務管理及對jdbc操作的支援
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
SSH:Spring框架(宣告式事務管理詳解)
1) 概念:事務 (Transaction) 是訪問並可能更新資料庫中各種資料項的一個程式執行單元 (unit) 。事務通常由高階資料 庫操縱語言或程式語言 (如 SQL , C++ 或 Java ) 書寫的使用者程式的執行所引起, 並用形如 begin transacti
spring支援程式設計式事務管理和宣告式事務管理兩種方式
1、宣告式事務提交,註解transaction,自動進行事務提交和回滾。 宣告式事務管理也有兩種常用的方式,一種是基於tx和aop名字空間的xml配置檔案,另一種就是基於@Transactional註解。2、程式設計式事務管理,在程式碼中顯示進行事務提交及回滾。原文:h
spring 宣告式事務管理註解方式實現
使用註解實現Spring的宣告式事務管理,更加簡單! 步驟: 1) 必須引入Aop相關的jar檔案 2) bean.xml中指定註解方式實現宣告式事務管理以及應用的事務管理器類 3)在需要新增事務控制的地方,寫上: @T
Spring不同事務管理方式與宣告式事務管理區域性回滾處理方案
Spring配置檔案中關於事務配置總是由三個組成部分,分別是DataSource、TransactionManager和代理機制這三部分,無論哪種配置方式,一般變化的只是代理機制這部分。 DataSource、TransactionManager這兩部分只是會根據資料訪問
事務管理及spring基於註解的宣告式事務管理的配置和用法
因為前幾天看一個專案文件出現“本系統採用基於Spring的宣告式事務控制”,才根據文件和程式碼瞭解了一下事務管理的相關知識。這裡對自己的學習做個總結。 一:相關概念 1.事務:事務是一系列的動作,它們