(spring)什麼是宣告式事務,回滾事務
阿新 • • 發佈:2019-02-07
開啟事務
—>>
修改sql-1
—>>
修改sql-2
—>>
修改sql-n
—>>
提交/回滾事務
該過程交由sping管理,解脫了事務程式碼。(宣告式事務 )
使用方式:
1.spring2.0:ProxyFactoryBean+XML
2.tx:advice+aop名稱空間—>一次配置永久有效
3.註解@Transactional—>註解控制(推薦!!!我在使用,比較可控)
事務方法巢狀:
宣告式事務獨有的概念。
傳播行為:propagation_required 當新事務加入進來時,如果有,則加入,沒有,則新建。(不怎麼懂,還沒用到)
什麼時候回滾事務:
丟擲執行期異常(RuntimeException)時。
so:要小心try catch。
配置宣告式事務(spring-service.xml):
<!--配置事務管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--注入資料庫連線池-->
<property name="dataSource" ref="dataSourse"/>
</bean>
<!--配置基於註解的宣告式事務,預設使用註解來管理事務行為-->
<tx:annotation-driven transaction-manager="transactionMana```
er"/>
為需要宣告式事務控制的service實現類方法新增@Transactional
- 使用註解控制事務方法的優點:
- 1:開發團隊達成一致約定,明確標註事務方法的程式設計風格。
- 2:保證事務方法的執行時間儘可能短,不要穿插其他網路操作RPC/HTTP請求或者剝離到事務方法外部。
- 3:不是所有的方法都需要事務,如只有一條修改操作,只讀操作不需要事務控制。