@Transactional 方面有什么样的切入点?之前、之后还是前后?
what kind of pointcut the @Transactional aspect has? Before, After or Around?
什么时候解释 Spring 方面强制性示例通常是事务和日志记录 )))
所以我最近被问到的问题是:什么样的切入点具有@Transactional 方面?之前、之后还是前后?
(如有任何其他说明,我们将不胜感激!)
谢谢
在理论问题(面试、解释等)方面,事务支持可以作为 AOP 方面的 "Around" 建议来实现。
解释:
Around 建议在实际代码执行前后提供了一个挂钩,这正是实现 @Transactional
逻辑所需要的。
在"applicative"代码执行之前,spring会开启一个事务,或者实现更复杂的逻辑(比如嵌套事务支持等。这叫做传播;也有隔离- 所有这些在技术上都可以设置为 @Transactional
注释的参数)
应用代码执行后,spring 应检查结果,并根据状态提交或回滚事务(通常,如果应用代码抛出异常,则应进行回滚,如果一切正常 - 提交。
请注意,您在问题中使用的术语 "what kind of pointcut has @Transactional aspect" 也不完全准确。
AOP 中的切入点 定义应在哪些连接点应用关联的 Advice。
所有处理交易的逻辑都可以在类型为around.
的Advice中实现
什么时候解释 Spring 方面强制性示例通常是事务和日志记录 )))
所以我最近被问到的问题是:什么样的切入点具有@Transactional 方面?之前、之后还是前后? (如有任何其他说明,我们将不胜感激!)
谢谢
在理论问题(面试、解释等)方面,事务支持可以作为 AOP 方面的 "Around" 建议来实现。
解释:
Around 建议在实际代码执行前后提供了一个挂钩,这正是实现 @Transactional
逻辑所需要的。
在"applicative"代码执行之前,spring会开启一个事务,或者实现更复杂的逻辑(比如嵌套事务支持等。这叫做传播;也有隔离- 所有这些在技术上都可以设置为 @Transactional
注释的参数)
应用代码执行后,spring 应检查结果,并根据状态提交或回滚事务(通常,如果应用代码抛出异常,则应进行回滚,如果一切正常 - 提交。
请注意,您在问题中使用的术语 "what kind of pointcut has @Transactional aspect" 也不完全准确。
AOP 中的切入点 定义应在哪些连接点应用关联的 Advice。
所有处理交易的逻辑都可以在类型为around.
的Advice中实现