<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之旅 廣告
                注解是Spring框架里很常用的,本博文對Annotation的事務管理進行說明,目的是為編程學習者提供參考的博客。 @Transactional放在一個類前面時,只是對public類型的方法有用 若類中某些方法不需要事務管理時,通過@Transaction(propagation = Propagation.Not_SUPPORTED)注釋說明事務管理對這個方法不適應 ~~~ @Transactional public class TestServiceBean implements TestService { private TestDao dao; public void setDao(TestDao dao) { this.dao = dao; } @Transactional(propagation = Propagation.NOT_SUPPORTED) public List<Object> getAll() { return null; } } ~~~ **事物傳播行為介紹:**? @Transactional(propagation=Propagation.REQUIRED)? 如果有事務, 那么加入事務, 沒有的話新建一個(默認情況下) @Transactional(propagation=Propagation.NOT_SUPPORTED)? 容器不為這個方法開啟事務 @Transactional(propagation=Propagation.REQUIRES_NEW)? 不管是否存在事務,都創建一個新的事務,原來的掛起,新的執行完畢,繼續執行老的事務 @Transactional(propagation=Propagation.MANDATORY)? 必須在一個已有的事務中執行,否則拋出異常 @Transactional(propagation=Propagation.NEVER)? 必須在一個沒有的事務中執行,否則拋出異常(與Propagation.MANDATORY相反) @Transactional(propagation=Propagation.SUPPORTS)? 如果其他bean調用這個方法,在其他bean中聲明事務,那就用事務.如果其他bean沒有聲明事務,那就不用事務. 事物超時設置: @Transactional(timeout=30) //默認是30秒 **@Transactional注解中常用參數說明** <table border="1" cellspacing="0" cellpadding="0" style="width:100%"><tbody><tr><td width="21%"><p><span style="font-size:14px">參 數 名 稱</span></p></td><td width="78%"><p><span style="font-size:14px">功 能 描 述</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">readOnly</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置當前事務是否為只讀事務,設置為true表示只讀,false則表示可讀寫,默認值為false。例如:@Transactional(readOnly=true)</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">rollbackFor</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置需要進行回滾的異常類數組,當方法中拋出指定異常數組中的異常時,則進行事務回滾。例如:</span></p><p><span style="font-size:14px">指定單一異常類:@Transactional(rollbackFor=RuntimeException.class)</span></p><p><span style="font-size:14px">指定多個異常類:@Transactional(rollbackFor={RuntimeException.class, Exception.class})</span></p></td></tr></tbody></table> ?續表) <table border="1" cellspacing="0" cellpadding="0" style="width:100%"><tbody><tr><td width="21%"><p><span style="font-size:14px">參 數 名 稱</span></p></td><td width="78%"><p><span style="font-size:14px">功 能 描 述</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">rollbackForClassName</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置需要進行回滾的異常類名稱數組,當方法中拋出指定異常名稱數組中的異常時,則進行事務回滾。例如:</span></p><p><span style="font-size:14px">指定單一異常類名稱:@Transactional(rollbackForClassName="RuntimeException")</span></p><p><span style="font-size:14px">指定多個異常類名稱:@Transactional(rollbackForClassName={"RuntimeException","Exception"})</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">noRollbackFor</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置不需要進行回滾的異常類數組,當方法中拋出指定異常數組中的異常時,不進行事務回滾。例如:</span></p><p><span style="font-size:14px">指定單一異常類:@Transactional(noRollbackFor=RuntimeException.class)</span></p><p><span style="font-size:14px">指定多個異常類:@Transactional(noRollbackFor={RuntimeException.class, Exception.class})</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">noRollbackForClassName</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置不需要進行回滾的異常類名稱數組,當方法中拋出指定異常名稱數組中的異常時,不進行事務回滾。例如:</span></p><p><span style="font-size:14px">指定單一異常類名稱:@Transactional(noRollbackForClassName="RuntimeException")</span></p><p><span style="font-size:14px">指定多個異常類名稱:</span></p><p><span style="font-size:14px">@Transactional(noRollbackForClassName={"RuntimeException","Exception"})</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">propagation</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置事務的傳播行為,具體取值可參考表6-7。</span></p><p><span style="font-size:14px">例如:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">isolation</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置底層數據庫的事務隔離級別,事務隔離級別用于處理多事務并發的情況,通常使用數據庫的默認隔離級別即可,基本不需要進行設置</span></p></td></tr><tr><td width="21%"><p><span style="font-size:14px">timeout</span></p></td><td width="78%" valign="top"><p><span style="font-size:14px">該屬性用于設置事務的超時秒數,默認值為-1表示永不超時</span></p></td></tr></tbody></table>
                  <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>

                              哎呀哎呀视频在线观看