Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何控制同一个包上两个切入点的执行顺序_Java_Spring_Aop - Fatal编程技术网

Java 如何控制同一个包上两个切入点的执行顺序

Java 如何控制同一个包上两个切入点的执行顺序,java,spring,aop,Java,Spring,Aop,我有一种情况,有一个通用的切入点和几个其他特定的切入点。 我想要的只是泛型应该首先执行,然后只有特定的应该执行 一般的切入点是 @Before("execution(public * com.java.*.data(..))") 特定切入点编号1 @Before("execution(public * com.java.science.*.data(..))") 特定切入点编号2 @Before("execution(public * com.java.history.*.d

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

一般的切入点是

  @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(..))")

应首先执行Genric point cut,然后执行特定的点切割。我可以控制它吗?

您可以使用
@Order(value=…)
@Aspect
-注释类上设置优先级:

@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

您可以在
@Aspect
-注释类上使用
@顺序(值=…)
设置优先级:

@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
也许会有用也许会有用