spring事物應該注意的地方

2021-09-12 12:43:23 字數 1103 閱讀 9104

a. 乙個功能是否要事務,必須納入設計、編碼考慮。不能僅僅完成了基本功能就ok。

b. 如果加了事務,必須做好開發環境測試(測試環境也盡量觸發異常、測試回滾),確保事務生效。

c. 以下列了事務使用過程的注意事項,請大家留意。

不要在介面上宣告@transactional ,而要在具體類的方法上使用 @transactional 註解,否則註解可能無效。

2.不要圖省事,將@transactional放置在類級的宣告中,放在類宣告,會使得所有方法都有事務。故@transactional應該放在方法級別,不需要使用事務的方法,就不要放置事務,比如查詢方法。否則對效能是有影響的。

3.使用了@transactional的方法,對同乙個類裡面的方法呼叫, @transactional無效。比如有乙個類test,它的乙個方法a,a再呼叫test本類的方法b(不管b是否public還是private),但a沒有宣告註解事務,而b有。則外部呼叫a之後,b的事務是不會起作用的。(經常在這裡出錯)

4.使用了@transactional的方法,只能是public,@transactional註解的方法都是被外部其他類呼叫才有效,故只能是public。道理和上面的有關聯。故在 protected、private 或者 package-visible 的方法上使用 @transactional 註解,它也不會報錯,但事務無效。

5.經過在icore-claim中測試,效果如下:

a.丟擲受查異常***exception,事務會回滾。

b.丟擲執行時異常nullpointerexception,事務會回滾。

c.quartz中,execute直接呼叫加了@transactional方法,可以回滾;間接呼叫,不會回滾。(即上文3點提到的)

d.非同步任務中,execute直接呼叫加了@transactional方法,可以回滾;間接呼叫,不會回滾。(即上文3點提到的)

e.在action中加上@transactional,不會回滾。切記不要在action中加上事務。

f.在service中加上@transactional,如果是action直接調該方法,會回滾,如果是間接調,不會回滾。(即上文3提到的)

g.在service中的private加上@transactional,事務不會回滾。

spring事物應該注意的地方

a.乙個功能是否要事務,必須納入設計 編碼考慮。不能僅僅完成了基本功能就ok。b.如果加了事務,必須做好開發環境測試 測試環境也盡量觸發異常 測試回滾 確保事務生效。c.以下列了事務使用過程的注意事項,請大家留意。不要在介面上宣告 transactional 而要在具體類的方法上使用 transac...

spring事物應該注意的地方

a.乙個功能是否要事務,必須納入設計 編碼考慮。不能僅僅完成了基本功能就ok。b.如果加了事務,必須做好開發環境測試 測試環境也盡量觸發異常 測試回滾 確保事務生效。c.以下列了事務使用過程的注意事項,請大家留意。不要在介面上宣告 transactional 而要在具體類的方法上使用 transac...

面試應該注意的地方

摘自 size large 面試官是找合適的人,而不是最優秀的人!面試的目的就是希望了解面試者的兩個方面,應聘者是否有足夠的技能,應聘者是否能和現在的團隊融合並完成期望的工作。說實話,面試成功關鍵是看你過去的努力程度和你是個什麼樣的人,技巧的用處很少,因為還有試用期,最終總是會看到你真實的一面,技巧...