Spring 事务管理机制可以使用 @Transactional 注解来自动管理事务,但也可以手动管理事务。如果你希望不使用 @Transactional 注解来管理事务,可以使用以下步骤:
在 Spring 配置文件中配置事务管理器:
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
使用事务管理器来手动开启、提交或回滚事务:
public class SomeService {
@Autowired
private DataSourceTransactionManager transactionManager;
public void doSomething() {
// 开启事务
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
// 执行业务逻辑
// ...
// 提交事务
transactionManager.commit(status);
} catch (Exception e) {
// 回滚事务
transactionManager.rollback(status);
}
}