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

Spring中的@Transactional的工作原理

 更新時(shí)間:2022年06月04日 09:05:04   作者:興濤  
這篇文章主要介紹了Spring中的@Transactional的工作原理,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1、原理

事務(wù)的概念想必大家都很清楚,其ACID特性在開(kāi)發(fā)過(guò)程中占有重要的地位。同時(shí)在并發(fā)過(guò)程中會(huì)出現(xiàn)一些一致性問(wèn)題,為了解決一致性問(wèn)題,也出現(xiàn)了四種隔離級(jí)別,這里就不再詳述了,感興趣的可以去查一下。下面我們討論一下Spring中的事務(wù)。

Spring中的事務(wù)有兩種:

  • 編程式事務(wù)
  • 聲明式事務(wù)

通常情況下我們使用聲明式事務(wù),它是基于SpringAOP實(shí)現(xiàn)的?;贏OP實(shí)現(xiàn)的事務(wù)極大得幫助了我們的開(kāi)發(fā)效率,其本質(zhì)是對(duì)方法進(jìn)行前后攔截,在目標(biāo)方法前加入一個(gè)事務(wù),在目標(biāo)完成后再加入一個(gè)事務(wù)進(jìn)行提交或者回滾,這種方式下我們并不需要在目標(biāo)方法中的代碼中摻雜事務(wù)管理代碼,輕松進(jìn)行事務(wù)管理。

而編程式事務(wù)就需要我們修改代碼來(lái)進(jìn)行事務(wù)管理。這種方法看似很麻煩,但是它的存在自有它的道理,上面我們講到的聲明式事務(wù)控制,其控制的細(xì)粒度只能作用到方法上,無(wú)法在代碼塊中實(shí)現(xiàn)聲明式事務(wù)控制。我們都知道,一旦加上事務(wù),程序的運(yùn)行效率就會(huì)降低,所以編程式事務(wù)也有它的用武之地。

但是我們的廣大勞動(dòng)人民也是智慧的。直接將需要事務(wù)的代碼塊獨(dú)立成方法,這樣仍然可以使用聲明式事務(wù)。當(dāng)然在開(kāi)發(fā)中具體情況要具體分析了。

2、用法

事務(wù)的傳播行為: 

 事務(wù)的隔離級(jí)別

@Transactional屬性

 示例代碼:

@Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class RoleServiceImpl implements RoleService {

    @Autowired
    private RoleDao roleDao;

    @Transactional(propagation = Propagation.SUPPORTS,readOnly = true)
    @Override
    public List<Role> findAllRoles() {
        return roleDao.selectAllRoles();
    }
}

3、拓展

1、為什么聲明式事務(wù)只能應(yīng)用于方法上?

  • 因?yàn)槁暶魇绞聞?wù)是基于AOP實(shí)現(xiàn)的,AOP是基于動(dòng)態(tài)代理實(shí)現(xiàn)的。
  • 動(dòng)態(tài)代理只會(huì)捕捉來(lái)自外部的方法調(diào)用,
  • 意思就是類內(nèi)部的方法調(diào)用類內(nèi)部的另外方法,并不會(huì)發(fā)生事務(wù)行為。

到此這篇關(guān)于Spring中的@Transactional的工作原理的文章就介紹到這了,更多相關(guān)Spring @Transactional 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot 轉(zhuǎn)發(fā)請(qǐng)求至指定頁(yè)面的操作方法

    SpringBoot 轉(zhuǎn)發(fā)請(qǐng)求至指定頁(yè)面的操作方法

    這篇文章主要介紹了SpringBoot 轉(zhuǎn)發(fā)請(qǐng)求至指定頁(yè)面,需要使用@Controller,不可使用@RestController,@RestController相當(dāng)于@Controller和@ResponseBody合在一起的作用,本文通過(guò)實(shí)例代碼詳細(xì)講解,需要的朋友可以參考下
    2022-11-11
  • Java面向接口編程之簡(jiǎn)單工廠模式示例

    Java面向接口編程之簡(jiǎn)單工廠模式示例

    這篇文章主要介紹了Java面向接口編程之簡(jiǎn)單工廠模式,結(jié)合實(shí)例形式詳細(xì)分析了java面向接口編程簡(jiǎn)單工廠模式的具體定義與使用方法,需要的朋友可以參考下
    2019-09-09
  • Java調(diào)用接口如何獲取json數(shù)據(jù)解析后保存到數(shù)據(jù)庫(kù)

    Java調(diào)用接口如何獲取json數(shù)據(jù)解析后保存到數(shù)據(jù)庫(kù)

    這篇文章主要介紹了Java調(diào)用接口如何獲取json數(shù)據(jù)解析后保存到數(shù)據(jù)庫(kù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 一文了解Seata的實(shí)現(xiàn)原理

    一文了解Seata的實(shí)現(xiàn)原理

    隨著業(yè)務(wù)發(fā)展,單體系統(tǒng)逐漸無(wú)法滿足業(yè)務(wù)的需求,分布式架構(gòu)逐漸成為大型互聯(lián)網(wǎng)平臺(tái)首選。伴隨而來(lái)的問(wèn)題是,本地事務(wù)方案已經(jīng)無(wú)法滿足,分布式事務(wù)相關(guān)規(guī)范和框架應(yīng)運(yùn)而生。本文主要介紹Seata的實(shí)現(xiàn)原理
    2021-06-06
  • IDEA導(dǎo)入Springboot項(xiàng)目,注解和pom文件不識(shí)別的解決

    IDEA導(dǎo)入Springboot項(xiàng)目,注解和pom文件不識(shí)別的解決

    這篇文章主要介紹了IDEA導(dǎo)入Springboot項(xiàng)目,注解和pom文件不識(shí)別的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Spring Boot整合mybatis(一)實(shí)例代碼

    Spring Boot整合mybatis(一)實(shí)例代碼

    sprig-boot是一個(gè)微服務(wù)架構(gòu),加快了spring工程快速開(kāi)發(fā),以及簡(jiǎn)便了配置。接下來(lái)開(kāi)始spring-boot與mybatis的整合
    2017-07-07
  • java實(shí)現(xiàn)從方法返回多個(gè)值功能示例

    java實(shí)現(xiàn)從方法返回多個(gè)值功能示例

    這篇文章主要介紹了java實(shí)現(xiàn)從方法返回多個(gè)值功能,結(jié)合實(shí)例形式分析了集合類、封裝對(duì)象、引用傳遞三種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-10-10
  • 從0到1學(xué)SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解

    從0到1學(xué)SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解

    Spring?Cloud?Gateway的目標(biāo)提供統(tǒng)一的路由方式且基于Filter?鏈的方式提供了網(wǎng)關(guān)基本的功能,?例如:安全、監(jiān)控、指標(biāo)和限流?,這篇文章主要介紹了從0到1學(xué)SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解,需要的朋友可以參考下
    2023-04-04
  • 高分面試分析jvm如何實(shí)現(xiàn)多態(tài)

    高分面試分析jvm如何實(shí)現(xiàn)多態(tài)

    這篇文章主要介紹了講解了在面試中jvm如何實(shí)現(xiàn)多態(tài),怎樣回答才能得到高分的問(wèn)題分析,有需要的朋友可以借鑒參考下,祝大家早日升職加薪多多進(jìn)步
    2022-01-01
  • Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼

    Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼

    這篇文章主要介紹了Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼,所用到的開(kāi)發(fā)工具為myeclipse10,MySQL數(shù)據(jù)庫(kù),具體實(shí)現(xiàn)代碼大家參考下本文吧
    2017-03-03

最新評(píng)論

淮南市| 永胜县| 平原县| 体育| 大连市| 青海省| 涞源县| 鲁甸县| 萍乡市| 沭阳县| 延川县| 仪征市| 湖北省| 观塘区| 咸丰县| 清远市| 渑池县| 九龙县| 通海县| 民和| 灯塔市| 旌德县| 监利县| 武平县| 东宁县| 敦化市| 廉江市| 丹巴县| 邻水| 方城县| 明溪县| 潢川县| 姜堰市| 德钦县| 华坪县| 铜陵市| 昆山市| 乌鲁木齐市| 唐山市| 苗栗县| 景洪市|