AspectJ如何覆盖建议

时间:2018-12-04 14:48:51

标签: java maven aspectj aspectj-maven-plugin

我在AspectJ中遇到以下问题。我的Java Web应用程序包括使用方面的多个依赖项(在jar中包含它们自己的 META-INF / aop.xml )。这是aop.xml的示例:

<aspectj>
       <weaver>
              <include within="package..*"/>
       </weaver>
       <aspects>
              <aspect name="package.LoggingAspect" />
       </aspects>
</aspectj>

这是方面的代码:

@Aspect
public class LoggingAspect {

    @Around("executeMethod() && @annotation(someAnnotation)")
    public Object execute(ProceedingJoinPoint joinPoint, SomeAnnotation a) throws Throwable {
        //some logic here
    }

    @Pointcut("execution(* *..*.*(..))")
    public void executeMethod() {
    }
}

在我的应用程序中,我需要根据给定的建议覆盖逻辑。我该如何实现?我试图为自己的方面提供相同的建议(条件相同),但是在这种情况下,两个方面都适用。有什么方法可以排除不必要的方面/建议或将其覆盖?

UPD。作为临时解决方案,我将LoggingAspect的代码复制到自己的代码中,更改了advide的逻辑,并为aop.xml提供了以下内容:

<aspects>
    <aspect name="package.MyLoggingAspect"/>
    <exclude within="package.LoggingAspect"/>
</aspects>

0 个答案:

没有答案