談談你對Spring事務的理解 面試

2021-10-05 22:25:02 字數 1266 閱讀 3750

面試中,spring的事務問得比較多,特別是spring事務的傳播行為和隔離級別,下面就讓我們一起來複習下,首先我們要清楚事務的四大特徵(acid):

spring有兩種事務處理方式,一種是宣告式事務,另外一種是程式設計式事務。

在配置宣告式事務管理的時候,我們用到最多的是註解方式,我們看下@transactional這個註解的原始碼:

@target()

@retention

(retentionpolicy.runtime)

@inherited

@documented

public @inte***ce

transactional

;//回滾事務的異常類名稱定義

string[

]rollbackforclassname()

default

;//當產生哪些異常不回滾

class<

?extends

throwable

>

norollbackfor()

default

;//當產生哪些異常不回滾類名稱定義

string[

]norollbackforclassname()

default

;}

上面的屬性中,這裡重點解釋傳播行為和隔離級別

下面是定義傳播行為propagation列舉類的原始碼:

public

enum propagation

public

intvalue()

}

先看下幾個基本的概念:

髒讀:乙個事務讀取到另一事務未提交的更新資料。

不可重複讀:在同一事務中, 第一次讀取和第二次讀取過程中,有另外乙個事務更新提交了資料,導致多次讀取同一資料返回的結果不同。

幻讀 : 第乙個事務正在查詢符合某一條件的資料,這時,另乙個事務又插入了一條符合條件的資料,第乙個事務在第二次查詢符合同一條件的資料時,發現多了一條前一次查詢時沒有的資料,彷彿幻覺一樣,這就是幻像讀。

【提示】:不可重複讀針對的是更新和刪除操作導致資料不一致,幻讀針對的是插入操作導致的資料不一致。

下面是定義隔離級別isolation列舉類的原始碼:

public

enum isolation

public

intvalue()

}

談談你對Spring的理解

spring是乙個開源的輕量級的應用開發框架,其目的是用於簡化企業級應用開發,降低 的侵入性和耦合度。spring提供的ioc和aop功能,可以將容器內的元件耦合度降低至最低,即解耦,為將來的工程 的維護提供了方便。spring為系統提供了乙個整體的解決方案,開發者除了可以利用它本身具有的功能外,還...

談談你對spring的理解

回答 spring是乙個輕量級的ioc和aop容器框架。spring的優點 不講出口 spring的輕量級是是從它的大小和開銷來說的,完整的spring框架可以在乙個大小只有1mb多的jar檔案裡發布。並且spring所需的處理開銷也是微不足道的。spring是非侵入式的,spring的api是不會...

談談你對AtomicInteger的理解

atomicinteger是乙個提供原子操作的integer類,通過執行緒安全的方式操作加減。十分適合高併發情況下的使用 對於全域性變數的數值型別操作 num 若沒有加synchronized關鍵字則是執行緒不安全的,num 解析為num num 1,明顯,這個操作不具備原子性,多執行緒時必然會出現...