事務:一組原子操作的工作單元,要麼全部成功,要麼全部失敗。
Spring 管理事務方式:
Spring 提供兩種方式:
PlatformTransactionManager 介面TransactionTemplate 模板
步驟:指定實現類 → 定義事務 TransactionDefinition → 傳給 TransactionStatus → try-catch 封裝業務 → 錯誤時呼叫 rollback。完整代碼範例請參考原文。

步驟:封裝 TransactionManager → 建立事務回調類 → 執行 execute()。代碼範例請參考原文。

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
透過 AOP 實現,不修改原有類,使用 TransactionProxyFactoryFactoryBean 指定介入事務與方法。包含實體類、DAO 介面與實現、測試類、applicationContext.xml 配置(含 proxyInterfaces, target, transactionManager, transactionAttributes)。



步驟:引入 tx、aop 命名空間 → 定義 tx:advice → 設定 tx:attributes → aop:config 定義切點與通知器。完整 XML 配置請參考原文。

在類或方法加 @Transactional,配置檔加入 <tx:annotation-driven transaction-manager="transactionManager"/>。代碼範例請參考原文。