<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ~~~ /** * 事務的傳播行為 。。。 * * @當一個事務方法,調用另外一個事務方法的時候。 * 第一個方法已經在一個事務中了,第二個方法是用第一個方法的事務,還是新開啟一個事務。@ * * * * * * * 適用propagation指定事務的傳播行為,即當前的事務方法被另外一個事務方法調用時如何使用事務。 * PROPAGATION_REQUIRED 是事務的默認傳播行為,即使用調用方法的事務。 * * * 舉例,張三有500積分,同時換購兩件商品 2(100),3(500)... 那么到底是能夠換購1件商品還是都不行? * * 請再讀一遍被@所標注的話,然后再來看例子。 * 將事務的傳播行為改成PROPAGATION_REQUIRES_NEW。 * * * (常用的兩個PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW) * REQUIRED--支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。 * REQUIRES_NEW--新建事務,如果當前存在事務,把當前事務掛起。 * SUPPORTS--支持當前事務,如果當前沒有事務,就以非事務方式執行。 * MANDATORY--支持當前事務,如果當前沒有事務,就拋出異常。 * NOT_SUPPORTED--以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 * NEVER--以非事務方式執行,如果當前存在事務,則拋出異常。 * NESTED-- 如果有事務在運行,當前的方法就應該在這個事務的嵌套事務內運行,否則就啟動一個新的事務,并在它自己的事務內運行。 * * * isolation 設置事務的隔離級別 isolation=Isolation.READ_COMMITTED 最常用 * * 默認spring聲明式事務對所有異常回滾,也可以去做設置,但是一般不做。 * * * 使用readOnly 指定事務是否為只讀,由于事務可以在行和表上獲得鎖,因此長事務會占用資源,對整體性能產生影響。 * 如果一個事務只讀取數據,但是不做修改,數據庫引擎可以對這個事務進行優化。 * * 超時事務屬性,事務在強制回滾之前可以保持多久,這樣可以防止長期運行的事務占用資源。timeout 秒。 * * 只讀事務,表示這個事務只讀取數據但不更新數據,這樣可以幫助數據庫引擎優化事務。 ~~~ ~~~ 配置事務三個步驟: * <!-- 1.配置事務管理器 DataSourceTransactionManager --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 2.添加一個讓注解生效的驅動 默認值就是transactionManager--> <tx:annotation-driven transaction-manager="transactionManager"/> *3.@Transactional */ ~~~ `propagation=Propagation.REQUIRES_NEW` 可以單獨換購一件商品 默認 `propagation=Propagation.REQUIRED`不可以換購商品 timeout=3 說的是3秒之后事務回滾 都失敗 ![](https://box.kancloud.cn/cf266eb8c790060b2a30841afc4c8de3_1133x541.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看