Spring 带有注释的仅 AOP 方法
Spring AOP only method with annotation
我有这个 AOP 运行 在我的所有应用程序方法上,但我希望它 运行 仅在使用 ProfileExecution 注释进行注释的方法上,
我怎样才能使用这个 xml
<bean id="profiler" class="com.mytest.ProfilerExecution" />
<aop:config>
<aop:aspect ref="profiler">
<aop:pointcut id="serviceMethod"
expression="execution(public * *(..))" />
<aop:around pointcut-ref="serviceMethod" method="profile"/>
</aop:aspect>
</aop:config>
谢谢
使用以下切入点表达式 @annotation(com.abc.xyz.ProfileExecution)
和 AND
操作来过滤方法。
所以最终 xml 应该如下所示
<aop:config>
<aop:aspect ref="profiler">
<aop:pointcut id="serviceMethod"
expression="execution(public * *(..)) and @annotation(com.abc.xyz.ProfileExecution)" />
<aop:around pointcut-ref="serviceMethod" method="profile"/>
</aop:aspect>
</aop:config>
确保在表达式中包含注释的完全限定名称,否则它将不起作用。
我有这个 AOP 运行 在我的所有应用程序方法上,但我希望它 运行 仅在使用 ProfileExecution 注释进行注释的方法上, 我怎样才能使用这个 xml
<bean id="profiler" class="com.mytest.ProfilerExecution" />
<aop:config>
<aop:aspect ref="profiler">
<aop:pointcut id="serviceMethod"
expression="execution(public * *(..))" />
<aop:around pointcut-ref="serviceMethod" method="profile"/>
</aop:aspect>
</aop:config>
谢谢
使用以下切入点表达式 @annotation(com.abc.xyz.ProfileExecution)
和 AND
操作来过滤方法。
所以最终 xml 应该如下所示
<aop:config>
<aop:aspect ref="profiler">
<aop:pointcut id="serviceMethod"
expression="execution(public * *(..)) and @annotation(com.abc.xyz.ProfileExecution)" />
<aop:around pointcut-ref="serviceMethod" method="profile"/>
</aop:aspect>
</aop:config>
确保在表达式中包含注释的完全限定名称,否则它将不起作用。