程序化和声明式事务管理之间的选择

程序化事务管理通常只在您只有少量事务操作时才是一个好主意。例如,如果您有一个 Web 应用程序,它仅在某些更新操作中需要事务,则您可能不希望通过使用 Spring 或任何其他技术来设置事务代理。在这种情况下,使用 TransactionTemplate 可能是一种不错的方法。能够显式设置事务名称也是只能通过使用程序化方法进行事务管理才能实现的功能。

另一方面,如果您的应用程序有大量的事务操作,则声明式事务管理通常是值得的。它使事务管理与业务逻辑分离,并且配置起来并不困难。当使用 Spring 框架时,而不是 EJB CMT,声明式事务管理的配置成本大大降低。