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>

确保在表达式中包含注释的完全限定名称,否则它将不起作用。