簡體   English   中英

Legacy Spring應用程序 - 切入點值是什么意思?

[英]Legacy Spring application - what does the pointcut value mean?

我已經“繼承”了舊的Spring應用程序。 目前它正在使用Spring 2.5(只升級一次),我希望進一步升級到Spring 3。

我理解大多數應用程序配置。 只有一部分我“不是100%”。 我可以大致猜出它可能意味着什么,但我需要絕對肯定因此發布這個問題:

這是配置片段(取決於此處未顯示的注釋驅動的事務管理器):

<aop:config>
    <aop:advisor pointcut="execution(* *..ProductManager.*(..))"
        advice-ref="txAdvice" />
</aop:config>

<tx:advice id="txAdvice">
    <tx:attributes>
        <tx:method name="save*" />
        <tx:method name="*" read-only="false" />
    </tx:attributes>
</tx:advice>

我具體的兩個問題是:

  • “執行(* ..ProductManager。 (..))”是什么意思(我理解切入點的說法)
  • 在建議的屬性部分,我們說將事務應用於所有與save *相關的​​方法,並且對於所有內容,只讀是假的。 誰能解釋為什么這個設置有意義? 對於所有具有事務支持的方法(即只保存*方法),它是否是附加的並且有效地說,我也希望這些方法不是只讀事務。 或者它是否將不同的東西(即某種形式的交易支持)應用於包含事務過濾器的每種方法(在切入點中定義)。

謝謝你的任何澄清。 請,沒有一般性的答案 - 我需要一個具體的解釋。

由於tx:method具有read-only屬性,默認值為false,表示事務是讀/寫。

所以在我看來,

<tx:method name="save*" read-only="false" /> <tx:method name="*" />

相當於

<tx:method name="*" />

execution(* *..ProductManager.*(..))表示“對於ProductManager類中的所有方法”

tx:建議設置不是附加的。 它表示對於以save開頭的所有方法都使用默認的事務設置。 對於其他人,此設置意味着它們不是只讀事務。

對於常識,人們會期待

<tx:method name="save*" read-only="false" />
<tx:method name="*" />

暫無
暫無

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

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