spring 事务
为什么需要 Spring 事务管理? 数据库本身已经提供了事务机制,能够通过 COMMIT 和 ROLLBACK 等操作实现事务的提交与回滚。 但是,在 Java 项目中,如果直接使用 JDBC 管理数据库事务,开发者通常需要手动控制事务的开启、提交和回滚。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 try { connection.setAutoCommit(false); // 创建订单 // 扣减库存 // 扣减余额 connection.commit(); } catch (Exception e) { connection.rollback(); throw new RuntimeException(e); } 上述代码省略了数据库连接的获取、关闭等细节。 这种方式虽然可以实现事务管理,但存在几个问题: 重复代码较多:不同业务方法都需要编写事务开启、提交、回滚等逻辑。 业务逻辑与事务管理耦合:开发者不仅需要关注具体业务,还需要处理事务的生命周期。 事务管理容易出错:如果遗漏回滚操作,或者异常处理不当,就可能导致事务行为不符合预期。 因此,Spring 在底层事务能力之上提供了一套统一的事务管理机制,帮助开发者简化事务控制。 ...