<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 注解方式 1. 需要申請配置事物管理 (在spring beans配置文件中) ``` <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> ``` 2. 啟用事務注解(在spring beans配置文件中) ``` <tx:annotation-driven transaction-manager="transactionManager"/> ``` 3. 在需要開啟事物的方法上添加注解 `@Transactional` >### Transactional屬性 - **PROPAGATION**設置事物的傳播行為 當一個事務方法,調用另外一個事務方法的時候。 **需要在被調用的事物是使用PROPAGATION屬性**。 (常用的兩個`PROPAGATION_REQUIRED`,`PROPAGATION_REQUIRES_NEW`) 1. REQUIRED--支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。 2. REQUIRES_NEW--新建事務,如果當前存在事務,把當前事務掛起。 3. SUPPORTS--支持當前事務,如果當前沒有事務,就以非事務方式執行。 4. MANDATORY--支持當前事務,如果當前沒有事務,就拋出異常。 NOT_SUPPORTED--以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 5. NEVER--以非事務方式執行,如果當前存在事務,則拋出異常。 6. NESTED-- 如果有事務在運行,當前的方法就應該在這個事務的嵌套事務內運行,否則就啟動一個新的事務,并在它自己的事務內運行。 - `isolation`設置事務的隔離級別 `isolation=Isolation.READ_COMMITTED`最常用 - 默認spring聲明式事務對所有異常回滾,也可以去做設置,但是一般不做。 - 只讀事務,表示這個事務只讀取數據但不更新數據,這樣可以幫助數據庫引擎優化事務。 使用`readOnly `指定事務是否為只讀,由于事務可以在行和表上獲得鎖,因此長事務會占用資源,對整體性能產生影響。 如果一個事務只讀取數據,但是不做修改,數據庫引擎可以對這個事務進行優化。 - 超時事務屬性,事務在強制回滾之前可以保持多久,這樣可以防止長期運行的事務占用資源。`timeout `秒。 ## XML文件配置方式(與AOP配合使用) 1. 配置事務管理器(同注解方式) 2. 配置事務屬性 ``` <!-- 配置事務屬性。 --> <tx:advice id="txadvice" transaction-manager="transactionManager"> <!-- 事務屬性 --> <tx:attributes> <!-- name屬性可以對應具體的方法名稱 。然后配置事務具體的屬性,傳播行為,propagation 以及isolation等。。。 --> <tx:method name="exchangeGoods" propagation="REQUIRES_NEW"/> <tx:method name="find*" read-only="true"/> <tx:method name="get*" read-only="true"/> <tx:method name="*"/> <!-- *匹配所有方法,exchangeGoods給特定方法添加事務。get find開頭的方法添加事務。 --> </tx:attributes> </tx:advice> 3. 配置事務切入點 ``` <!-- 將配置好的事務屬性添加到指定方法 。使用springAOP切點表達式進行配置。 --> <aop:config> <aop:pointcut expression="execution(* com.yuan.spring.service.*.*(..))" id="txpointcut"/> <!-- 合并事務跟切點 --> <aop:advisor advice-ref="txadvice" pointcut-ref="txpointcut"/> </aop:config>
                  <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>

                              哎呀哎呀视频在线观看