簡體   English   中英

Spring TX:建議和Spring AOP切入點之間的區別

[英]Difference between spring tx:advice and spring aop pointcut

我是新來的春天,具有冬眠的工作知識。 我的工作是通過使用Spring聲明式方法來實現交易。由於Google的幫助,我成功地在Google的幫助下完成了交易。 但是無法清楚地了解我在application-context.xml中使用的術語。

1。

 <tx-advice>

</tx-advice>
  1.  <aop-config> // here is point cut were declared </aop-config> 

有人可以向我解釋以上幾點,與此同時,我也試圖從google上了解它。

由於您已經成功實施了spring transaction

Spring我們可以通過三種方式實現事務:

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

您實現的被稱為通過XML的聲明式事務管理

簡而言之,您通過Spring的AOP功能實現了transaction的實現。

tx:advice XML配置與基於XML的AOP配置耦合在一起可以實現協同組合。 例如,我們可以使用方法名稱來自動確定我們要對該方法應用哪種事務。

,我們要在其上用啟動所有方法應用事務savemodify ,如savePizza() saveColdDrink() modifyOrder() modifyBill() 對於這些,我們必須在xml文件中定義advice

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

正如我們在上面一行中所說的那樣,我們的建議已經准備就緒,我們只希望以savemodify開頭的方法進行事務處理。 現在,我們要通過使用aop-config pointcut元素來說明哪些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> pointcut元素表示要在其中應用事務的位置,例如<aop:advisor advice-ref="txAdvice" pointcut-ref="allServices"/>

<tx:advice>標記特定於事務管理配置,而<aop:config>標記通常可用於進行面向方面的編程

AOP可以用於事務之外的其他用途,例如日志記錄或訪問控制。 而且,不一定必須使用AOP來實現事務管理,這只是通常在Spring中完成的方式(但是Spring也支持Programmatic Transaction Management )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM