国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Spring 事務隔離與事務傳播的詳解與對比

2024-09-05 00:23:17
字體:
供稿:網(wǎng)友

Spring 事務隔離與事務傳播的詳解與對比

Spring是SSH中的管理員,負責管理其它框架,協(xié)調(diào)各個部分的工作。今天一起學習一下Spring的事務管理。Spring的事務管理分為聲明式跟編程式。聲明式就是在Spring的配置文件中進行相關配置;編程式就是用注解的方式寫到代碼里。

Spring配置文件中關于事務配置總是由三個組成部分,分別是DataSource、TransactionManager和代理機制這三部分,無論哪種配置方式,一般變化的只是代理機制這部分。 DataSource、 TransactionManager這兩部分只是會根據(jù)數(shù)據(jù)訪問方式有所變化,比如使用Hibernate進行數(shù)據(jù)訪問時,DataSource實際為 SessionFactory,TransactionManager的實現(xiàn)為HibernateTransactionManager。

spring的事務隔離級別

  • ISOLATION_DEFAULT:使用數(shù)據(jù)庫默認的隔離級別。
  • ISOLATION_READ_UNCOMMITTED:允許讀取改變了的還未提交的數(shù)據(jù),可能導致臟讀、不可重復讀和幻讀。
  • ISOLATION_READ COMMITTED:允許并發(fā)事務提交之后讀取,可以避免臟讀,可能導致重復讀和幻讀。
  • ISOLATION_REPEATABLE_READ:對相同字段的多次讀取結果一致,可導致幻讀。
  • ISOLATION_SERIALIZABLE:完全服從ACID的原則,確保不發(fā)生臟讀、不可重復讀和幻讀。

可以根據(jù)自己的系統(tǒng)對數(shù)據(jù)的要求采取適應的隔離級別,因為隔離牽涉到鎖定數(shù)據(jù)庫中的記錄,對數(shù)據(jù)正性要求越嚴格,并發(fā)的性能也越差。

spring的事務傳播行為

  • spring事務的傳播行為說的是當一個方法調(diào)用另一個方法時,事務該如何操作。
  • PROPAGATION_MANDATORY:該方法必須運行在一個事務中。如果當前事務不存在則拋出異常。
  • PROPAGATION_NESTED:如果當前存在一個事務,則該方法運行在一個嵌套的事務中。被嵌套的事務可以從當前事務中單獨的提交和回滾。如果當前不存在事務,則開始一個新的事務。各廠商對這種傳播行為的支持參差不齊,使用時需注意。
  • PROPAGATION_NEVER:當前方法不應該運行在一個事務中。如果當前存在一個事務,則拋出異常。
  • PROPAGATION_NOT_SUPPORTED:當前方法不應該運行在一個事務中。如果一個事務正在運行,它將在該方法的運行期間掛起。
  • PROPAGATION_REQUIRED:該方法必須運行在一個事務中。如果一個事務正在運行,該方法將運行在這個事務中。否則,就開始一個新的事務。
  • PROPAGATION_REQUIRES_NEW:該方法必須運行在自己的事務中。它將啟動一個新的事務。如果一個現(xiàn)有的事務正在運行,將在這個方法的運行期間掛起。
  • PROPAGATION_SUPPORTS:當前方法不需要事務處理環(huán)境,但如果一個事務已經(jīng)在運行的話,這個方法也可以在這個事務里運行。

以上就是Spring 事務隔離與事務傳播的實例詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黑龙江省| 闸北区| 桐庐县| 东乌| 伊川县| 平陆县| 陆河县| 武功县| 五台县| 湖州市| 陇西县| 丹阳市| 鹤岗市| 罗平县| 浦县| 招远市| 都昌县| 沅江市| 郁南县| 无锡市| 静宁县| 绥芬河市| 望谟县| 连山| 织金县| 湛江市| 罗平县| 西城区| 施秉县| 都安| 敦化市| 察雅县| 安阳市| 松原市| 开平市| 漳平市| 侯马市| 句容市| 长寿区| 龙南县| 望城县|