@Transactional方面具有什么样的切入点?之前,之后还是周围?

时间:2018-07-04 18:27:51

标签: spring transactional aspects

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

所以我最近被问到的问题是:@Transactional方面具有哪种切入点?之前,之后还是周围? (任何其他说明,不胜感激!)

谢谢

1 个答案:

答案 0 :(得分:3)

就理论性问题(访谈,解释等)而言,事务支持可以作为针对AOP的“全面”建议来实施。

说明:

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

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

在执行了应用代码之后,spring应检查结果,并根据状态提交或回滚事务(通常,如果应用代码抛出异常,则应进行回滚,如果一切正常-提交)。

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

AOP中的

切入点定义关联的建议应在哪些连接点处应用。

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