我正在学习AOP
,并了解到这对于分离关注点很有用,例如logging
,transaction management
,security
等。
到目前为止很高兴知道AOP
.
现在,我阅读了Spring框架中的Spring事务管理,我们可以@Transactional
注释。
正是这一点让我感到困惑,为什么我们要使用我们必须创建Aspects
的AOP
,而不是使用Spring提供的注释。
例如:
@Transactional
public void dataAccessTrans() {
}
当Spring已经具有与事务相关的功能时,我们为什么要使用AOP
来进行事务管理呢?
如果我们使用 AOP
,那么我们不必创建Aspect
并创建将作用于该方法的advice
;这难道不是让我们做手动工作,而不是由 Spring 框架本身通过它自己的注释来处理它吗?
谁能帮助我理解这一点,我无法清楚地理解。
Spring 依靠 AOP 来实现声明式事务。
Spring 框架的声明式事务管理完成 可以使用 Spring 面向方面的编程 (AOP(,尽管作为 事务方面代码随 Spring 框架一起提供 分发并可以以样板方式使用,AOP 概念确实 通常不必理解才能有效利用这一点 法典。
因此,当您使用@Transactional
注释时:
@Transactional
public void dataAccessTrans() {
...
}
您间接使用 AOP。
因此,在大多数情况下,您永远不需要声明任何自定义方面来处理事务管理。