java – spring tx:advice和spring aop pointcut之间的区别

我是春天的新手,拥有hibernate的工作知识.
我的工作是使用spring声明方法实现事务.并且在Google的帮助下成功完成了Google的帮助.但是无法清楚地理解我在application-context.xml中使用的术语.

1.

 <tx-advice>

</tx-advice>

>

<aop-config>
    // here is point cut were declared
</aop-config>

可以有人解释我的上述观点,同时我也试图从谷歌中了解它.

最佳答案
由于您已经成功实现了spring事务,

在Spring中,我们可以通过三种方式实现事务:

>平台事务管理.
> Declarative交易管理.
> Programmatic交易管理.

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

简而言之,您通过Spring的AOP功能实现了事务的实现.

将tx:advice XML配置与基于XML的AOP配置相结合,可实现协同组合.例如,我们可以使用方法名称来自动确定我们想要在该方法上应用哪种类型的事务.

假设我们想要在所有以保存和修改开头的方法上应用事务,例如savePizza(),saveColdDrink(),modifyOrder(),modifyBill().对于这些,我们必须在我们的xml文件中定义建议:

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

我们的建议已经准备就绪,正如我们所说的那样,我们只想在以保存或修改开头的方法上进行交易.现在我们将通过使用aop-config的切入点元素来说明哪些bean需要上述建议.例如,假设我们要将事务建议应用于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>意味着要做什么或我们想要应用哪种交易行为.
内部的切入点元素< aop-config>说我们想要申请交易的地方,
说< aop:advisor advice-ref =“txAdvice”pointcut-ref =“allServices”/>

转载注明原文:java – spring tx:advice和spring aop pointcut之间的区别 - 代码日志