1. 程式人生 > >spring支持的事務管理

spring支持的事務管理

持久化 完成 nes 標簽 什麽 異常 管理器 ont 文件中

1、編程式事務:

需在spring.xml配置文件中,

1、配置數據源、

2、持久化模板(jdbc模板、hibernate模板、mybatis模板)、 對象裏面註入的是數據源及框架的屬性配置;

3、需編寫事務管理器 transcationManager, 對象裏面註入的是數據源對象;

4、配置事務模板 transactionTemplate ,對象裏面註入的是事務管理器對象;

5、需配置持久化dao,需註入 持久化模板對象和 事務模板對象 兩個;

6、在dao層的對象中,所有的增刪改需放在 事務模板的內部類中 實現持久化操作;

2、聲明式事務 需在spring.xml文件配置:

1、配置數據源;

2、持久化模板(jdbc模板、hibernate模板、mybatis模板)、 對象裏面註入的是數據源及框架的屬性配置;

3、配置事務管理器 transcationManager, 對象裏面註入的是數據源對象;

4、通過aop配置聲明式事務(切入的規則,切入點兩個標簽)

5、配置持久層dao, 需註入 持久化模板對象即可。

6、在dao層,所有的增刪改使用持久化模板來完成數據的持久化操作; 聲明式相對編程式: 代碼更寬松,只配置在xml文件中即可,利用aop的橫切規則即能完成事務的操作; 跟持久層的代碼沒有耦合;

3、註解式事務 需在spring.xml文件配置:

1、配置數據源;

2、持久化模板(jdbc模板、hibernate模板、mybatis模板)、 對象裏面註入的是數據源及框架的屬性配置;

3、需編寫事務管理器 transcationManager, 對象裏面註入的是數據源對象;

4、使用<tx:annotation-driven transaction-manager="transcationManager"/> 註解,指向事務管理器;

5、持久層dao的代碼,[email protected] 註解, 然後在spring.xml文件中配置包掃描;

6、持久層dao類中的所有增刪改(需要事務支持的方法),[email protected]

/* */ 註解。

2中的聲明式事務中方法的配置屬性: <tx:method name="add*" propagation="REQUIRED" timeout="-1" no-rollback-for="" read-only="false" rollback-for="" isolation="DEFAULT" />

name: 匹配的方法名稱

propagation:事務的傳播屬性,一共有7個值(REQUIRED,REQUIRED_NEW,SUPPORTS, MANDATORY,NOT_SUPPORTED,NEVER,NESTED)

timeout: 事務執行的事件控制, 超時時間;

rollback-for: 見到什麽異常就回滾;

no-rollback-for: 見到什麽異常一定不回滾;

isolation: 事務的傳播屬性,一共有4個值(default,read-only,read-write,transaction)

read-only: 只讀;

spring支持的事務管理