2016-02-09 73 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使用的不同模式,所以在作出决定之前一定要先熟悉编织。