一尘不染

Spring TX:建议和Spring AOP切入点之间的区别

java

我是新来的春天,具有冬眠的工作知识。我的工作是通过使用Spring声明式方法来实现交易。由于Google的帮助,我成功地在Google的帮助下完成了交易。但是无法清楚地了解我在application-
context.xml中使用的术语。

1。

 <tx-advice>

</tx-advice>

  1. // here is point cut were declared

有人可以向我解释以上几点,与此同时,我也试图从google上了解它。


阅读 250

收藏
2020-12-03

共1个答案

一尘不染

您已经成功实施了spring transaction

Spring我们可以通过三种方式实现交易:

  1. 平台交易管理。
  2. 声明式 事务管理。
  3. 程序化 交易管理。

您实现的被称为 通过XML的声明式事务管理

简而言之,您transaction通过Spring的AOP功能进行了实现。

tx:advice XML配置与基于XML的AOP配置耦合在一起可以实现协同组合。例如,我们可以使用方法名称来自动确定我们要对该方法应用哪种事务。

假设
我们想在与启动所有方法应用事务savemodifysavePizza()saveColdDrink()modifyOrder()modifyBill()。对于这些,我们必须advice在xml文件中定义:

<tx:advice id="txAdvice" >
  <tx:attributes>
    <tx:method name="save*" propagation="REQUIRED"/>
    <tx:method name="modify*" propagation="REQUIRED"/>
  </tx:attributes>
</tx:advice>

正如我们在上面一行中所说的那样,我们的建议已经准备就绪,我们只希望以save或开头的方法进行交易modify。现在,我们将使用的pointcut元素来说明哪些bean需要上述建议aop- config。例如,假设我们要将交易建议应用于com.mytransaction.service包内所有可用的类。

为此,我们必须在xml文件中添加以下行:

<aop:config>
  <aop:pointcut id="allServices"
    expression="execution(*com.mytransaction.service.*.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="allServices"/>
</aop:config>

简而言之,<tx:advice>是指我们要应用的交易方式或行为。 pointcut内部元素<aop- config>表示要在何处应用交易,例如<aop:advisor advice-ref="txAdvice" pointcut- ref="allServices"/>

2020-12-03