【发布时间】:2012-12-16 06:01:24
【问题描述】:
我是 Spring 框架的新手,我对 @Transactional 和 tx:advice 感到困惑,因为我读到 AOP 用于提供声明性事务管理,而 @Transactional 也有同样的作用......它们是一样的吗? @Transactional 在内部使用 AOP 吗?在哪里使用 AOP 以及在哪里使用 @Transactional
【问题讨论】:
-
你知道什么是AOP吗?
我是 Spring 框架的新手,我对 @Transactional 和 tx:advice 感到困惑,因为我读到 AOP 用于提供声明性事务管理,而 @Transactional 也有同样的作用......它们是一样的吗? @Transactional 在内部使用 AOP 吗?在哪里使用 AOP 以及在哪里使用 @Transactional
【问题讨论】:
@Transactonal 在过去几年的所有项目中都是一个更实用的解决方案。然而,在一些非常特殊的情况下,我还必须使用 Spring AOP 来允许使用多个 JDBC 连接/TransactionManager,因为 @Transaction 绑定到单个事务 经理。
【讨论】:
@Transactional 只是一种简单的方式来声明一个类的方法或所有方法(如果放在类级别)是事务性的。
Spring 使用 AOP 代理来拦截对方法的调用,启动事务(如果需要),在方法执行后,它会提交或回滚事务。
【讨论】: