【发布时间】:2018-02-07 09:00:54
【问题描述】:
我读过 AOP 可用于日志记录、安全性、事务管理。 即使我已经使用 AOP 登录 Spring Boot 项目。但我不知道如何使用 AOP 进行事务管理。 谁能用例子解释一下?
谢谢
【问题讨论】:
标签: transactions aop spring-aop
我读过 AOP 可用于日志记录、安全性、事务管理。 即使我已经使用 AOP 登录 Spring Boot 项目。但我不知道如何使用 AOP 进行事务管理。 谁能用例子解释一下?
谢谢
【问题讨论】:
标签: transactions aop spring-aop
spring 中的事务原理基本上是基于 Aop-proxy 原理的,要了解发生了什么,你必须了解 Advisor 和 Intercepter 原理,来自文档:
顾问就像一个独立的小方面,只有一条建议。
这意味着当您使用 @Transactional 注释您的方法时,您要求 Spring 为您的目标服务创建代理(AOP 原则)并创建 Around advice 以维护您可以自定义的事务行为
这是一种特殊的advisor,称为事务性建议,因为它与 TransactionInterceptor 进行内部通信,例如,它没有什么特别之处,只是它处理事务行为(仅就绪,回滚..)
TransactionInterceptor 将实际事务处理委托给 PlatformTransactionManager 实例,该实例可以是 HibernateTransactionManager(对于单个 Hibernate SessionFactory,
事务建议的使用可以将自定义顾问与目标方法相关联,并定义您希望执行顾问的顺序(在事务建议之后或之前)
保持这个概述和注意,这里有一些链接要深入了解 here 是一个示例,如何通过向顾问添加属性来将服务事务化
我强烈建议您查看文档中的 section 以全面了解发生的情况。
【讨论】: