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