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