欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring事務(wù)失效之常見場景分析

 更新時(shí)間:2023年04月26日 09:35:52   作者:啊荻~  
這篇文章主要介紹了Spring事務(wù)失效之常見場景,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、事務(wù)方法訪問修飾符非public,導(dǎo)致事務(wù)失效

1、實(shí)例

2、解決

方式一:將方法修飾符改為public

方式二:開啟AspectJ代理模式

3、注意

  

如果事務(wù)是static、final的,同樣無法通過動(dòng)態(tài)代理,事務(wù)也是不會(huì)生效的?! ?/p>

Spring的聲明式事務(wù)是基于動(dòng)態(tài)代理實(shí)現(xiàn)的,我們無法重寫final修飾的方法;  

不管是JDK動(dòng)態(tài)代理還是Cglib的動(dòng)態(tài)代理,就是要通過代理的方式獲取到代理的具體對象,而static方法修飾的方法是屬于類的,不屬于任何對象,所以static方法不能被重寫,即便寫法上是重寫,但是并不具備重寫的含義,也就是說static方法也不被進(jìn)行動(dòng)態(tài)代理。

二、@Transactional注解的方法拋出的異常不是spring的事務(wù)支持的異常,導(dǎo)致事務(wù)失效

1、實(shí)例

2、解決

 

3、注意  

spring的事務(wù)只支持未檢查異常(unchecked),不支持已檢查異常(checked)。

三、數(shù)據(jù)表本身是不支持事務(wù),導(dǎo)致事務(wù)失效

1、實(shí)例

如果使用MySQL且存儲(chǔ)引擎是MyISAM,則事務(wù)是不起作用的,原因是MyIASM不支持事務(wù)。 

2、解決  

數(shù)據(jù)表可以改為InnoDB存儲(chǔ)引擎,支持事務(wù)

四、@Transactional注解所在的類沒有被spring管理,導(dǎo)致事務(wù)失效

1、實(shí)例

2、解決  

加上@Service注解或者使用其他能注冊成Spring Bean的方式或注解。

五、catch掉異常之后,沒有再次拋出異常,導(dǎo)致事務(wù)失效

1、實(shí)例

2、解決

3、注意  

如果在加有事務(wù)的方法內(nèi),使用了try…catch…語句塊對異常進(jìn)行了捕獲,而catch語句塊沒有throw new RuntimeException異?;蛘逽pring支持的異常類型,則事務(wù)不會(huì)回滾。

六、方法自身(this)調(diào)用問題,導(dǎo)致事務(wù)失效

非事務(wù)方法insert()中調(diào)用的自身類的事務(wù)方法insertUser()。

1、實(shí)例

2、解析

3、解決

方式一:

方式二:

方式三:

方式四:

七、數(shù)據(jù)源沒有配置事務(wù)管理器

導(dǎo)致事務(wù)失效

八、傳播類型不支持事務(wù)

導(dǎo)致事務(wù)失效

1、實(shí)例

2、注意

九、多線程調(diào)用,導(dǎo)致事務(wù)失效

1、實(shí)例

2、解析

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring使用@Autowired注解實(shí)現(xiàn)自動(dòng)裝配方式

    Spring使用@Autowired注解實(shí)現(xiàn)自動(dòng)裝配方式

    這篇文章主要介紹了Spring使用@Autowired注解實(shí)現(xiàn)自動(dòng)裝配方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot @CompentScan excludeFilters配置無效的解決方案

    SpringBoot @CompentScan excludeFilters配置無效的解決方案

    這篇文章主要介紹了SpringBoot @CompentScan excludeFilters配置無效的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • mybatis-plus 如何操作json字段

    mybatis-plus 如何操作json字段

    這篇文章主要介紹了mybatis-plus 如何操作json字段,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • SpringMVC執(zhí)行步驟、Model的使用詳解

    SpringMVC執(zhí)行步驟、Model的使用詳解

    這篇文章主要介紹了SpringMVC執(zhí)行步驟、Model的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • maven打包本地jar到項(xiàng)目中的方法實(shí)現(xiàn)

    maven打包本地jar到項(xiàng)目中的方法實(shí)現(xiàn)

    本文主要介紹了maven打包本地jar到項(xiàng)目中的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類

    Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類

    這篇文章主要介紹了Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類,涉及java隨機(jī)數(shù)與字符串遍歷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Spring security中的授權(quán)

    Spring security中的授權(quán)

    本篇為大家?guī)鞸pring security的授權(quán),首先要理解一些概念,有關(guān)于:權(quán)限、角色、安全上下文、訪問控制表達(dá)式、方法級安全性、訪問決策管理器,這篇文章主要介紹了Spring security中的授權(quán),需要的朋友可以參考下
    2024-01-01
  • Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found的解決方案(親測可用)

    Plugin ‘org.springframework.boot:spring-boot-maven-plug

    這篇文章給大家介紹了Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found的解決方案,親測可用,文中給出了兩種解決方法,需要的朋友可以參考下
    2024-01-01
  • Java用jxl讀取excel并保存到數(shù)據(jù)庫的方法

    Java用jxl讀取excel并保存到數(shù)據(jù)庫的方法

    這篇文章主要為大家詳細(xì)介紹了Java用jxl讀取excel并保存到數(shù)據(jù)庫的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • idea中一鍵自動(dòng)生成序列化serialVersionUID方式

    idea中一鍵自動(dòng)生成序列化serialVersionUID方式

    這篇文章主要介紹了idea中一鍵自動(dòng)生成序列化serialVersionUID方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論