我正在尝试计算“com.company.somemodule”包中的代码性能(包含类R1,R2,..),以及子包中的代码,
我写的切入点类似于以下内容。我能够查看类A1,A2的运行时间,但是我无法查看类R1,R2等的运行时间。
<bean id="timingAdvice"
class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor" />
<aop:config>
<aop:advisor
pointcut="execution(* com.company.somemodule..*.*(..)) OR
execution(* com.company.somemodule.*.*(..))"
advice-ref="timingAdvice" />
</aop:config>
请有人帮忙吗?提前谢谢。
P.S。:我已尝试按照here发布的建议。
答案 0 :(得分:1)
乍一看我的切入点没有看到任何错误,但我认为通过“内部”切入点表达式和“执行”表达式的组合,您所需要的更容易。
尝试这样的事情:
pointcut="within(com.company.somemodule..*) AND
execution(* *(..))"
这是com.company.somemodule包中所有方法执行方法的切入点。
答案 1 :(得分:1)
以K.C。的答案为基础......
我在配置Spring PerformanceMonitorInterceptor方面遇到了类似的问题。下面是一个示例工作配置,用于监视多个包中的方法执行:
<bean id="performanceMonitor"
class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor" />
<aop:config>
<aop:pointcut id="allCoreMethods" expression="
(
within( org.somepackage.dao..* )
or within( org.somepackage.controller..* )
or within( org.somepackage.service..* )
or within( org.somepackage.webservices..* )
)
AND execution(* *(..))"
/>
<aop:advisor pointcut-ref="allCoreMethods" advice-ref="performanceMonitor" order="2"/>
</aop:config>