我试图将切入点应用于子类中的已实现方法,但不会在此切入点周围调用AspectMethod.以下是我的配置和代码:
public abstract class ParentClass {
protected abstract void buildResponse(QueryResponse qryResp,ContentSearchServiceResponseImpl cssResp);
}
public class ChildClass extends ParentClass {
@override
public void buildResponse(QueryResponse qryResp,ContentSearchServiceResponseImpl ssResp){
//doSomething
}
Run Code Online (Sandbox Code Playgroud)
切入点:
<aop:pointcut id="pointcutId"
expression="execution(public * ParentClass.buildResponse(..))" />
Run Code Online (Sandbox Code Playgroud)
要么
<aop:pointcut id="pointcutId"
expression="execution(protected * ParentClass.buildResponse(..))" />
Run Code Online (Sandbox Code Playgroud)
要么
<aop:pointcut id="pointcutId"
expression="execution(public * ParentClass+.buildResponse(..))" />
Run Code Online (Sandbox Code Playgroud)
对于任何上述切入点的配置,Aspect都没有被创建.我已经尝试了几乎所有的东西.如果有人对此有所了解......我不能直接使用Child Class的名称,因为在我的情况下,多个子类正在实现这个抽象方法
尝试
execution(public * buildResponse(..)) && within(ParentClass+)
Run Code Online (Sandbox Code Playgroud)
要么
execution(public * buildResponse(..)) && target(ParentClass+)
Run Code Online (Sandbox Code Playgroud)
还要记住,如果使用"标准"基于Spring代理的AOP,那么类内部的调用(一个方法调用同一个类中的另一个方法)不会受到任何建议.
| 归档时间: |
|
| 查看次数: |
4742 次 |
| 最近记录: |