详细介绍:Spring之事务管理方式

Spring支持两种方式的事务管理


1.编程式事务管理

通过 TransactionTemplate或者TransactionManager手动管理事务,实际应用中很少使用,但是对于你理解 Spring 事务管理原理有帮助。

使用TransactionTemplate 进行编程式事务管理的示例代码如下:

@Autowiredprivate TransactionTemplate transactionTemplate;public void testTransaction() {         transactionTemplate.execute(new TransactionCallbackWithoutResult() {            @Override            protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {                 try {                     // ....  业务代码                } catch (Exception e){                    //回滚                    transactionStatus.setRollbackOnly();                }             }        });}

使用 TransactionManager 进行编程式事务管理的示例代码如下:

@Autowiredprivate PlatformTransactionManager transactionManager; public void testTransaction() {   TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());          try {               // ....  业务代码              transactionManager.commit(status);          } catch (Exception e) {              transactionManager.rollback(status);          }}

2.声明式事务管理

推荐使用(代码侵入性最小),实际是通过 AOP 实现(基于@Transactional 的全注解方式使用最多)。

使用 @Transactional注解进行事务管理的示例代码如下:

@Transactional(propagation = Propagation.REQUIRED)public void aMethod {  //do something  B b = new B();  C c = new C();  b.bMethod();  c.cMethod();}

posted @ 2025-07-22 18:37  yjbjingcha  阅读(8)  评论(0)    收藏  举报