1

我有一个通用切入点和其他几个特定切入点的情况。我想要的只是通用的应该首先执行,然后只有特定的应该执行。

通用切入点说,

  @Before("execution(public * com.java.*.data(..))") 

特定切点编号 1

  @Before("execution(public * com.java.science.*.data(..))") 

特定切点编号 2

  @Before("execution(public * com.java.history.*.data(..))") 

特定切点编号 3

  @Before("execution(public * com.java.geography.*.data(..))")

通用切入点应首先执行,然后是特定切入点。我可以控制吗?

4

1 回答 1

1

@Order( value = ... )您可以使用@Aspect-annotated 类设置优先级:

@Aspect
@Order( value=0 )
public class MyFirstPointcut
{
    @Before("execution(public * com.java.*.data(..))")
    public void something(...) { ... }
}

@Aspect
@Order( value=1 )
public class MySecondPointcut
{
    @Before("execution(public * com.java.science.*.data(..))") 
    public void somethingElse(...) { ... }
}

...etc
于 2013-02-27T10:06:03.560 回答