第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • Spring事務(wù)管理的兩種方式

    【1】編程式的事務(wù)管理:手動在程序中編寫代碼實現(xiàn)事務(wù)管理,實際應(yīng)用中很少使用,通過TransactionTemplate管理事務(wù)。

    【2】聲明式的事務(wù)管理:使用XML配置實現(xiàn)事務(wù)管理,推薦使用(代碼侵入性最?。?,Spring的聲明式事務(wù)管理是通過AOP實現(xiàn)的(沒有代碼之前開啟事務(wù),代碼完成后提交事務(wù))。

    搭建事務(wù)管理環(huán)境(模擬轉(zhuǎn)賬環(huán)境)

    【a】創(chuàng)建表及插入記錄

    【b】創(chuàng)建項目并引入jar包

    【c】引入log4j.properties、applicationContext.xml、jdbc.properties配置文件。

    【e】創(chuàng)建包結(jié)構(gòu),編寫Dao及Service

    【f】spring配置文件編寫

    https://img1.sycdn.imooc.com//5d4e32dd0001de4411810401.jpg

    【g】Dao中獲取JDBC模板

    首先Dao實現(xiàn)類需要繼承JdbcDaoSupport類,該類中就會注入JDBC模板,該類中定義了JDBC模板,并提供set方法只要Dao中注入模板就可以

    。也可以通過注入連接池獲取JDBC模板。


    https://img1.sycdn.imooc.com//5d4e33990001990906490150.jpg

    https://img1.sycdn.imooc.com//5d4e33990001d0bd06620136.jpg

    https://img1.sycdn.imooc.com//5d4e33990001d57207740174.jpg



    【h】Dao方法具體編寫

    https://img1.sycdn.imooc.com//5d4e35dc0001bd1c07430391.jpg


    【i】Service中注入Dao,并調(diào)用Dao中的方法

    【k】測試:由于Junit4和spring整合的包已經(jīng)引入,所以通過注解@ContextConfiguration注解加載配置文件,這里使用注解@Resource(name="")方式注入AccountService。

    https://img1.sycdn.imooc.com//5d4e389e0001bb0b06250284.jpg


    查看全部
  • TransactionStatus接口介紹

    TransactionStatus接口:提供了獲取事務(wù)狀態(tài)的方法(例如:hasSavepoint()事務(wù)是否有保存點,isCompleted()事務(wù)是否已經(jīng)完成,isNewTransaction()是否是新的事務(wù))。

    https://img1.sycdn.imooc.com//5d4cd5e00001245811170405.jpg

    查看全部
  • TransactionDefinition定義事務(wù)傳播行為

    事務(wù)的傳播行為:解決業(yè)務(wù)層方法之間相互調(diào)用的問題(一個service層里的方法調(diào)用另一個service里中的方法,這兩個service中又分屬于兩個不同的事務(wù),傳播行為就是為了解決方法調(diào)用時事務(wù)的傳遞)。

    https://img3.sycdn.imooc.com/5d4cca4a000114b309750466.jpg

    事務(wù)的傳播行為有7種,可以為3類:

    第一類為前三個,重點掌握第一個(在相同事務(wù)里):支持當(dāng)前事務(wù)(Service中bbb()調(diào)用Service中aaa()方法時,如果aaa()有事務(wù),則使用該事務(wù)。如果沒有事務(wù),則使用bbb()當(dāng)前事務(wù),如果當(dāng)前bbb()也沒有事務(wù),就會新創(chuàng)建一個事務(wù))

    第二類為接下來三個,重點掌握第一個(在不同事務(wù)中):如果aaa()有事務(wù)存在,掛起當(dāng)前事務(wù),創(chuàng)建一個新的事務(wù)(aaa()和bbb()不在一個事務(wù)中)。

    第三類:如果當(dāng)前事務(wù)存在,則嵌套事務(wù)執(zhí)行(執(zhí)行aaa()完后,會使用事務(wù)的保存點,在執(zhí)行bbb()時如果發(fā)生異常,可以回滾到設(shè)置的保存點,也可以回滾到最初始的狀態(tài))。

    https://img2.sycdn.imooc.com/5d4cc9e70001965a10890480.jpg



    查看全部
  • TransactionDefinition定義事務(wù)隔離級別

    TransactionDefinition接口:通過Spring的API可以知道該接口提供了一組常量。

    如下圖以ISOLATION開頭的五個隔離級別。

    https://img1.sycdn.imooc.com//5d4cbdfd00015b9608880269.jpg

    如下圖以PROPAGATION_MANDATORY開頭的7個傳播行為。

    https://img1.sycdn.imooc.com//5d4cbe750001ada909550314.jpg

    如下圖以TIMEOUT開頭的超時信息

    https://img1.sycdn.imooc.com//5d4cbee30001453709910070.jpg

    該接口還提供了一些方法,例如:獲得隔離級別、獲得超時信息、獲得是否只是只讀的等。

    https://img1.sycdn.imooc.com//5d4cbf2d000129a906640304.jpg

    如果不考慮隔離性,就會引發(fā)安全問題:臟讀、不可重復(fù)讀、以及虛讀或者叫做幻讀。

    臟讀:一個事務(wù)讀取了另一個事務(wù)改寫但還未提交的數(shù)據(jù),如果這些數(shù)據(jù)被回滾,則讀到的數(shù)據(jù)是無效的。

    不可重復(fù)讀:同一事務(wù)中,多次讀取同一數(shù)據(jù)返回的結(jié)果有所不同(讀取到另一個事務(wù)已經(jīng)提交的更新的數(shù)據(jù))。

    幻讀:一個事務(wù)讀取了幾行記錄后,另一個事務(wù)插入一些記錄,幻讀就發(fā)生了。再后來的查詢中,第一個事務(wù)就會發(fā)現(xiàn)有些原來沒有的記錄。

    正常情況下,數(shù)據(jù)庫提供了四種隔離級別:

    READ_UNCOMMITED:安全級別最低,如果設(shè)置為該級別,就可能會發(fā)生臟讀、不可重復(fù)讀、幻讀等。

    READ_COMMITED:如果設(shè)置該級別,可以避免臟讀的發(fā)生,但是可能會發(fā)生不可重復(fù)讀和幻讀。

    REPEATABLE_READ:如果設(shè)置該級別,可以避免臟讀和不可重復(fù)讀,但是可能會發(fā)生幻讀。

    SERIALIZABLE:事務(wù)是串行的,不會發(fā)生并發(fā)訪問這種情況

    https://img1.sycdn.imooc.com//5d4cc2f200014e7611010367.jpg

    Spring提供了DEFAULT,它代表使用數(shù)據(jù)庫默認的隔離級別(例如:Mysql默認采用REPEATABLE_READ隔離級別,Oracle默認采用READ_COMMITTED隔離級別)。

    查看全部
  • PlatformTransactionManager接口介紹:

    通過Spring的API可以知道該接口有許多實現(xiàn)類例如:DataSourceTransactionManager、HibernateTransactionManager等。Spring會為不同的持久化框架提供了不同PlatformTransactionManager接口實現(xiàn)。

    https://img1.sycdn.imooc.com//5d4c247900011d9d11210267.jpg

    比如當(dāng)我們使用SpringJDBC或者iBatis進行持久化數(shù)據(jù)時使用DataSourceTransactionManager。

    https://img1.sycdn.imooc.com//5d4c251e0001e25a10700304.jpg

    通常我們使用的是DataSourceTransactionManager和HibernateTransactionManager。


    查看全部
  • Spring中的事務(wù)管理:Spring提供了一組接口進行事務(wù)的管理。

    Spring提供事務(wù)管理的3個接口:

    【1】PlatformTransactionManager:事務(wù)管理器,用來管理事務(wù)的接口,定義了事務(wù)的提交、回滾等方法。

    https://img1.sycdn.imooc.com//5d4c1da70001103a05410115.jpg

    【2】TransactionDefinition:事務(wù)定義信息(隔離級別、傳播行為、是否超時、是否只讀)

    https://img1.sycdn.imooc.com//5d4c1dae0001d67104360413.jpg

    【3】TransactionStatus:事務(wù)具體運行狀態(tài)(事務(wù)是否提交,事務(wù)是否有保存點,事務(wù)是否是新事物等狀態(tài))。

    https://img1.sycdn.imooc.com//5d4c1db60001b0a603850196.jpg


    Spring事務(wù)管理時,這三個接口是有聯(lián)系的,Spring首先會根據(jù)事務(wù)定義信息TransactionDefinition獲取信息,然后由事務(wù)管理器PlatformTransactionManager進行管理,在事務(wù)管理過程中,會產(chǎn)生一個事務(wù)的狀態(tài),這個狀態(tài)就保存在事務(wù)具體運行狀態(tài)TransactionStatus中了。

    查看全部
    0 采集 收起 來源:接口介紹

    2019-08-08

  • 事務(wù)的基本概念:事務(wù)指的是邏輯上的一組操作,這組操作要么全部成功,要么全部失敗。

    事務(wù)的特性:原子性、一致性、隔離性、持久性。

    原子性:事務(wù)是一個不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。

    一致性:事務(wù)前后數(shù)據(jù)的完整性必須保持一致。

    隔離性:多個用戶并發(fā)訪問數(shù)據(jù)庫時,一個用戶的事務(wù)不能被其他用戶的事務(wù)所干擾,多個并發(fā)事務(wù)之間數(shù)據(jù)要相互隔離(數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)隔離級別,通過它避免事務(wù)間的沖突)。

    持久性:一個事務(wù)一旦被提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變是永久性的,即使數(shù)據(jù)庫發(fā)生故障也不應(yīng)該對其有任何影響。

    查看全部
    0 采集 收起 來源:事務(wù)回顧

    2019-08-08

  • 在需要使用事務(wù)的業(yè)務(wù)實現(xiàn)類前添加 @Transactional 注解,便可引入到事務(wù)管理中,同時事務(wù)的傳播行為、隔離級別等都存在于@Transactional 注解的屬性中,根據(jù)需求聲明賦值便可!

    查看全部
  • 聲明式事務(wù)管理中,基于注解的方式實現(xiàn):

    默認需要配置 org.springframeword.jdbc.datasource.DataSourceTransactionManager 外;

    只需要添加開啟注解事務(wù)的配置即可:

    <tx:annotatioon-drivern transaction-manager="transactionManager">


    查看全部
  • 此處業(yè)務(wù)層的代理 的配置 基于? TransactionProxyFactoryBean 類進行了增強操作,主要操作,通過配置目標(biāo)對象,將事務(wù)管理器注入并配置響應(yīng)的事務(wù)屬性,在 <property><props></props></property>中配置實際需要增強的功能,即事務(wù)的傳播行為;隔離級別只讀,異?;貪L處理等....

    注意: 業(yè)務(wù)功能增強是在本配置中實現(xiàn),通過配置目標(biāo)對象<property name="target" ref="accountService">將業(yè)務(wù)接口引入,并在當(dāng)前配置中做增強;因此真正具有增強功能的 是? "accountServiceProxy" 這個類,在引入 業(yè)務(wù)接口時需要通過 @Resource 引入 "accountServiceProxy"


    查看全部
  • 此處的accountService類沒有被增強過;實際增強的類是配置業(yè)務(wù)層的的代理中的 “id= accountServiceProxy”類<br/>
    查看全部
  • 本方法需要在業(yè)務(wù)接口上注入代理類,如圖中, @Resource(name="accountServicceProxy")

    private AccountService accountService;

    查看全部
  • 聲明式事務(wù)管理中,基于TransactionProxyFactoryBean的XML方式實現(xiàn):

    默認需要配置 org.springframeword.jdbc.datasource.DataSourceTransactionManager 外;

    還要配置具體的業(yè)務(wù)層的代理,即事務(wù)代理的主要項:

    org.springframeword.transaction.interceptor.TransactionProxyFactoryBean


    查看全部
  • 事務(wù)的通知中,可以增強的具體內(nèi)容有以下幾點:

    事務(wù)傳播行為;

    事務(wù)隔離級別;

    只讀;

    發(fā)生哪些異?;貪L;

    發(fā)生哪些異常不回滾

    查看全部
  • 使用aop:config配置切入點,使用aop:pointcut?? 的 id 作為切入點的 坐標(biāo);調(diào)用 aop:advisor 配置切面,引入事務(wù)的增強? -- "txAdvice",將其指向要生效的切入點 -- "pointcut1";當(dāng)excution 中對應(yīng)的方法被調(diào)用時,該切入點會被配置的事務(wù)進行增強
    查看全部

舉報

0/150
提交
取消
課程須知
學(xué)習(xí)本課程前需要熟悉Spring的基礎(chǔ)知識,掌握IOC和AOP的基本概念。小伙伴們可參考《Spring入門》課程
老師告訴你能學(xué)到什么?
1、理解Spring事務(wù)管理的基本概念 2、掌握Spring事務(wù)管理的應(yīng)用場景 3、掌握聲明式事務(wù)管理和編程式事務(wù)管理的實現(xiàn)方式

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!