0

当要解释 Spring 方面时,强制性示例通常是事务和日志记录 )))

所以我最近被问到的问题是:@Transactional 方面有什么样的切入点?之前,之后还是周围?(任何其他澄清表示赞赏!)

谢谢

4

1 回答 1

3

就理论问题(采访、解释等)而言,事务支持可以作为 AOP 方面的“Around”建议来实现。

解释:

Around建议在执行实际代码之前和之后提供了一个钩子,而这正是实现@Transactional逻辑所需要的。

在执行“应用”代码之前,spring 将打开一个事务,或者实现更复杂的逻辑(如嵌套事务支持等。这称为传播;还有隔离 - 从技术上讲,所有这些都可以设置为参数@Transactional注释)

应用程序代码执行后,spring 应该检查结果,并根据状态提交或回滚事务(通常,如果应用程序代码抛出异常,则应该完成回滚,如果一切正常 - 提交。

请注意,您在问题中使用的术语“什么样的切入点具有@Transactional 方面”并不完全准确。

AOP 中的切入点定义了应该在哪些连接点应用相关的 Advice。

所有处理事务的逻辑都可以在around类型的Advice中实现。

于 2018-07-04T18:44:35.427 回答