@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中实现