最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何解決Spring事務(wù)注解@Transactional在類內(nèi)部方法調(diào)用不生效

 更新時(shí)間:2024年08月19日 10:50:11   作者:MiracleSang  
這篇文章主要介紹了如何解決Spring事務(wù)注解@Transactional在類內(nèi)部方法調(diào)用不生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Spring事務(wù)注解@Transactional在類內(nèi)部方法調(diào)用不生效

問題現(xiàn)象

package cn.sw.study.web.service.impl;
import cn.sw.study.web.dao.UserMapper;
import cn.sw.study.web.model.User;
import cn.sw.study.web.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;

/**
 * 用戶業(yè)務(wù)類
 */
@Service
public class UserServiceImpl implements UserService{

    @Autowired
    UserMapper userMapper;

    public void addInfo() {
        addOne();
    }

    @Transactional
    public void addOne() {
        User record = new User();
        record.setLoginName("tom");
        record.setPwd("111111");
        record.setMobile("13913913913");
        record.setUsable(1);
        record.setCreateTime(new Date());
        userMapper.insertSelective(record);
        int i = 1/0;    // 測(cè)試事務(wù)的回滾
    }
}

如果從外部類直接調(diào)用addOne方法,則事務(wù)是可以正常生效的。

此時(shí)addInfo方法上沒有事務(wù)注解,addOne方法上有事務(wù)注解,運(yùn)行addInfo調(diào)用addOne方法,不會(huì)產(chǎn)生事務(wù),測(cè)試數(shù)據(jù)遇到異常沒有回滾。

問題原因

在默認(rèn)情況下,大部分使用spring的事務(wù)都是使用代理的模式,代理實(shí)現(xiàn)的事務(wù)有一定的局限性:

僅有在公有方法上標(biāo)記的@Transactional有效;

僅有外部方法調(diào)用過程才會(huì)被代理截獲,事務(wù)才會(huì)有效,也就是說,一個(gè)方法調(diào)用本對(duì)象的另一個(gè)方法,沒有通過代理類,事務(wù)也就無法生效。

解決辦法

手動(dòng)獲取代理類之后再調(diào)用

((UserServiceImpl)AopContext.currentProxy()).addOne();

問題解決!

總結(jié)

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

相關(guān)文章

  • MybatisPlus 主鍵策略之type=IdType.ASSIGN_ID等詳解

    MybatisPlus 主鍵策略之type=IdType.ASSIGN_ID等詳解

    雪花算法(雪花)是微博開源的分布式ID生成算法其核心思想就是:使用一個(gè)64位的長(zhǎng)型的數(shù)字作為全局唯一ID,這篇文章主要介紹了MybatisPlus 主鍵策略(type=IdType.ASSIGN_ID等詳解),需要的朋友可以參考下
    2024-04-04
  • idea如何查看安裝插件的位置

    idea如何查看安裝插件的位置

    這篇文章主要介紹了idea如何查看安裝插件的位置問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java中的異步與線程池解讀

    Java中的異步與線程池解讀

    這篇文章主要介紹了Java中的異步與線程池,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式

    JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式

    這篇文章主要介紹了JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 一段代碼搞懂關(guān)于Java中List、Set集合及Map的使用

    一段代碼搞懂關(guān)于Java中List、Set集合及Map的使用

    這篇文章主要介紹了關(guān)于Java中List、Set集合及Map的使用及l(fā)ist,set和map三者的區(qū)別介紹,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring框架作為一個(gè)輕量級(jí)的開源框架,在企業(yè)應(yīng)用開發(fā)中被廣泛使用,在Spring事務(wù)管理中,事務(wù)傳播行為是非常重要的一部分,它定義了方法如何參與到已經(jīng)存在的事務(wù)中或者如何開啟新的事務(wù),本文將詳細(xì)介紹Spring事務(wù)中的幾種事務(wù)傳播行為,詳細(xì)講解具體使用方法
    2023-06-06
  • Spring?Security自定義認(rèn)證邏輯實(shí)例詳解

    Spring?Security自定義認(rèn)證邏輯實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Spring?Security自定義認(rèn)證邏輯的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • SpringBoot之自動(dòng)裝配原理及解讀

    SpringBoot之自動(dòng)裝配原理及解讀

    Spring Boot自動(dòng)裝配原理:通過@SpringBootApplication、@ComponentScan和@EnableAutoConfiguration注解,掃描主配置類所在包及其子包下的類,并加載符合條件的自動(dòng)配置類,實(shí)現(xiàn)Spring IOC容器的自動(dòng)配置
    2026-02-02
  • mybatis-plus實(shí)現(xiàn)多表查詢的示例代碼

    mybatis-plus實(shí)現(xiàn)多表查詢的示例代碼

    MyBatis-Plus提供了多種方式實(shí)現(xiàn)多表查詢,包括使用注解、MyBatis-PlusJoin擴(kuò)展和XML配置文件,每種方法都有其適用場(chǎng)景和優(yōu)勢(shì),本文就來具體介紹一下,感興趣的可以了解一下
    2024-11-11
  • java和jsp中的request使用示例

    java和jsp中的request使用示例

    這篇文章主要介紹了java和jsp中的request使用示例,需要的朋友可以參考下
    2014-02-02

最新評(píng)論

泰兴市| 成安县| 石棉县| 夹江县| 兰考县| 青岛市| 临武县| 从化市| 安丘市| 德阳市| 武穴市| 金华市| 德安县| 瑞昌市| 修水县| 竹北市| 新晃| 金阳县| 遂溪县| 庐江县| 民和| 阳西县| 高平市| 雅安市| 海宁市| 韩城市| 临高县| 石渠县| 兖州市| 托克逊县| 西乌| 黑河市| 灵川县| 育儿| 榆社县| 鞍山市| 同仁县| 响水县| 广东省| 毕节市| 巴青县|