日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring事务管理详解_基本原理_事务管理方式

發(fā)布時間:2023/12/10 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring事务管理详解_基本原理_事务管理方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring事務(wù)管理詳解_基本原理_事務(wù)管理方式

1. 事務(wù)的基本原理

Spring事務(wù)的本質(zhì)其實就是數(shù)據(jù)庫對事務(wù)的支持,使用JDBC的事務(wù)管理機制,就是利用java.sql.Connection對象完成對事務(wù)的提交,那在沒有Spring幫我們管理事務(wù)之前,我們要怎么做。

Connection conn = DriverManager.getConnection(); try { conn.setAutoCommit(false); //將自動提交設(shè)置為false 執(zhí)行CRUD操作 conn.commit(); //當兩個操作成功后手動提交 } catch (Exception e) { conn.rollback(); //一旦其中一個操作出錯都將回滾,所有操作都不成功 e.printStackTrace(); } finally {conn.colse(); }

事務(wù)是一系列的動作,一旦其中有一個動作出現(xiàn)錯誤,必須全部回滾,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有已完成的操作全部撤消,滾回到事務(wù)開始的狀態(tài),避免出現(xiàn)由于數(shù)據(jù)不一致而導(dǎo)致的接下來一系列的錯誤。事務(wù)的出現(xiàn)是為了確保數(shù)據(jù)的完整性和一致性,在目前企業(yè)級應(yīng)用開發(fā)中,事務(wù)管理是必不可少的。

2. 常見spring事務(wù)面試題

2.1 什么是事務(wù)?

單個邏輯單元執(zhí)行一系列的事,要么全成功,要么全不執(zhí)行。

spring事務(wù)的本質(zhì)就是對數(shù)據(jù)庫事務(wù)的支持,沒有數(shù)據(jù)庫的事務(wù)支持,spring是無法完成事務(wù)的。

對于純jdbc操作數(shù)據(jù)庫,使用事務(wù)如下:
Connecton con = DriverManager.getConnection();
con.setAutoCommit(false);
//執(zhí)行crud 操作
con.commint();//提交事務(wù)
或者回滾事務(wù) con.rollback();

2.2 spring的核心。

1、spring的核心就是ioc控制反轉(zhuǎn)跟aop面向切面編程。

2、ioc控制反轉(zhuǎn)
控制:強調(diào)對象是由容器控制的,控制了對外部資源的獲取。
反轉(zhuǎn):以前都是我們自己創(chuàng)建對象依賴對象,反轉(zhuǎn)就是由容器幫我們創(chuàng)建并
注入依賴對象。

3、aop面向切面編程
aop將封裝的對象切開,找出對多個對象產(chǎn)生公共影響的部分,將其封裝成一個可復(fù)用的模塊,這個模塊成為切點,切點把不屬于業(yè)務(wù)層,卻被業(yè)務(wù)層共同調(diào)用的部分進行提取然后封裝。

3. spring事務(wù)管理方式

spring支持編程式事務(wù)管理和聲明式事務(wù)管理兩種方式。

3.1 編程式事務(wù)管理(了解)

編程式事務(wù)管理使用TransactionTemplate或者直接使用底層的PlatformTransactionManager。對于編程式事務(wù)管理,spring推薦使用TransactionTemplate。

3.2 聲明式事務(wù)管理(重點)

聲明式事務(wù)管理建立在AOP之上的。其本質(zhì)是對方法前后進行攔截,然后在目標方法開始之前創(chuàng)建或者加入一個事務(wù),在執(zhí)行完目標方法之后根據(jù)執(zhí)行情況提交或者回滾事務(wù)。聲明式事務(wù)最大的優(yōu)點就是不需要通過編程的方式管理事務(wù),這樣就不需要在業(yè)務(wù)邏輯代碼中摻雜事務(wù)管理的代碼,只需在配置文件中做相關(guān)的事務(wù)規(guī)則聲明(或通過基于@Transactional注解的方式),便可以將事務(wù)規(guī)則應(yīng)用到業(yè)務(wù)邏輯中。

3.3 事務(wù)管理小結(jié)

顯然聲明式事務(wù)管理要優(yōu)于編程式事務(wù)管理,這正是spring倡導(dǎo)的非侵入式的開發(fā)方式。聲明式事務(wù)管理使業(yè)務(wù)代碼不受污染,一個普通的POJO對象,只要加上注解就可以獲得完全的事務(wù)支持。和編程式事務(wù)相比,聲明式事務(wù)唯一不足地方是,后者的最細粒度只能作用到方法級別,無法做到像編程式事務(wù)那樣可以作用到代碼塊級別。但是即便有這樣的需求,也存在很多變通的方法,比如,可以將需要進行事務(wù)管理的代碼塊獨立為方法等等。

4. 總結(jié)

通過這篇文章,你要get到的知識點是“事務(wù)的基本概念”、以及spring事務(wù)管理的兩種方式。

“事務(wù)的基本概念”通常是初級工程師面試的一個熱點。

而spring事務(wù)管理的兩種方式,你要明確在實際開發(fā)中,用到的只是聲明式事務(wù)管理,比如:@Transactional注解;

而聲明式事務(wù)注解又有兩種常用的配置方式,所以如果你只知道@Transactional注解是不行的,

下一篇文章將告訴你如何在xml中配置,以致在開發(fā)中能夠使用該注解。

?

聲明式事務(wù)管理兩種常用的方式(基于tx和aop名字空間的xml配置 + @Transactional注解)

?

本文地址:http://www.cnblogs.com/niceyoo/articles/8729525.html

?

posted @ 2018-04-07 00:12 niceyoo 閱讀(...) 評論(...) 編輯 收藏

總結(jié)

以上是生活随笔為你收集整理的Spring事务管理详解_基本原理_事务管理方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。