【问题标题】:How to handle Transaction Management by AOP如何通过 AOP 处理事务管理
【发布时间】:2018-02-07 09:00:54
【问题描述】:

我读过 AOP 可用于日志记录、安全性、事务管理。 即使我已经使用 AOP 登录 Spring Boot 项目。但我不知道如何使用 AOP 进行事务管理。 谁能用例子解释一下?

谢谢

【问题讨论】:

    标签: transactions aop spring-aop


    【解决方案1】:

    spring 中的事务原理基本上是基于 Aop-proxy 原理的,要了解发生了什么,你必须了解 Advisor 和 Intercepter 原理,来自文档:

    顾问就像一个独立的小方面,只有一条建议。

    这意味着当您使用 @Transactional 注释您的方法时,您要求 Spring 为您的目标服务创建代理(AOP 原则)并创建 Around advice 以维护您可以自定义的事务行为

    这是一种特殊的advisor,称为​​事务性建议,因为它与 TransactionInterceptor 进行内部通信,例如,它没有什么特别之处,只是它处理事务行为(仅就绪,回滚..)

    TransactionInterceptor 将实际事务处理委托给 PlatformTransactionManager 实例,该实例可以是 HibernateTransactionManager(对于单个 Hibernate SessionFactory,

    事务建议的使用可以将自定义顾问与目标方法相关联,并定义您希望执行顾问的顺序(在事务建议之后或之前)

    保持这个概述和注意,这里有一些链接要深入了解 here 是一个示例,如何通过向顾问添加属性来将服务事务化

    我强烈建议您查看文档中的 section 以全面了解发生的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-18
      • 2014-11-30
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多