2016-02-09 71 views
1

我無法使用spring aop性能日誌記錄來記錄私有方法。 下面是我使用下面的配置如何通過Spring AOP記錄私有方法?

<aop:config proxy-target-class="true"> 
     <aop:pointcut id="allServiceMethods" expression="execution(* com.mycom.app.abc..*.*(..))"/> 
     <aop:advisor pointcut-ref="allServiceMethods" advice-ref="performanceMonitor" order="2"/> 
    </aop:config> 

我有我的類路徑上cglib罐子的配置。

+0

我有一些嵌套的私人方法調用,並希望記錄它們以及 –

回答

4

您必須使用編譯時編織,而不是Spring AOP的代理使用情況。

Spring AOP - Supported Pointcut Designators

由於Spring的AOP框架的基於代理的性質,保護的方法是通過定義不攔截,既不是JDK代理(其中,這是不適用),也不是CGLIB代理(其中這在技術上是可行的,但不適用於AOP目的)。因此,任何給定的切入點將僅與公共方法匹配!

如果您的攔截需求包括protected/private方法或構造函數,請考慮使用Spring驅動的本機AspectJ編織,而不是Spring的基於代理的AOP框架。這構成了具有不同特徵的AOP使用的不同模式,所以在作出決定之前一定要先熟悉編織。