切面的优先级需要借助@Order注解进行描述,数字越小优先级越高,默认优先级比较低。例如:
定义日志切面并指定优先级。
@Order(1)
@Aspect
@Component
public class SysLogAspect {
…
}
定义缓存切面并指定优先级:
@Order(2)
@Aspect
@Component
public class SysCacheAspect {
…
}
说明:当多个切面作用于同一个目标对象方法时,这些切面会构建成一个切面链,类似过滤器链、拦截器链,其执行分析如图-9所示:
图-9
3.4 关键对象与术语总结Spring 基于AspectJ框架实现AOP设计的关键对象概览,如图-10所示:
图-10
本小节作为课堂练习,以AOP方式记录项目中的用户行为信息,并将其存储到数据库。参考日志模块的文档。



