如何指定切面的优先级 ① 可以在切面上使用 @Order("序号")注解指定切面的优先级,序号用整数表示,数值越小,优先级越高。 ② 也可以实现Ordered接口,getOrder() 方法返回的值越小,优先级越高。
举个例子:
@Order(1)
@Aspect
@Component
public class LoggingApsect
{
...
}
@Order(0)
@Aspect
@Component
public class ValidationApsect
{
...
}
二、重用切入点表达式
如何重用切入点表达式: ① 使用 @Pointcut("切入点表达式")注解声明一个简单的方法。方法体通常是空的,方法的修饰符,控制着这个切入点表达式的可见性,如果需要被多个切面引用,可以声明为public。 ② 同切面的通知可以根据方法名引用该切入点表达式。 同一个包下切面的通知需要通过 类名.方法名引入该切入点表达式。 不同包下切面的通知需要通过 包名.类名.方法名引入该切入点表达式。