当要解释 Spring 方面时,强制性示例通常是事务和日志记录 )))
所以我最近被问到的问题是:@Transactional 方面有什么样的切入点?之前,之后还是周围?(任何其他澄清表示赞赏!)
谢谢
当要解释 Spring 方面时,强制性示例通常是事务和日志记录 )))
所以我最近被问到的问题是:@Transactional 方面有什么样的切入点?之前,之后还是周围?(任何其他澄清表示赞赏!)
谢谢
就理论问题(采访、解释等)而言,事务支持可以作为 AOP 方面的“Around”建议来实现。
解释:
Around建议在执行实际代码之前和之后提供了一个钩子,而这正是实现@Transactional
逻辑所需要的。
在执行“应用”代码之前,spring 将打开一个事务,或者实现更复杂的逻辑(如嵌套事务支持等。这称为传播;还有隔离 - 从技术上讲,所有这些都可以设置为参数@Transactional
注释)
应用程序代码执行后,spring 应该检查结果,并根据状态提交或回滚事务(通常,如果应用程序代码抛出异常,则应该完成回滚,如果一切正常 - 提交。
请注意,您在问题中使用的术语“什么样的切入点具有@Transactional 方面”并不完全准确。
AOP 中的切入点定义了应该在哪些连接点应用相关的 Advice。
所有处理事务的逻辑都可以在around类型的Advice中实现。