【学习笔记】AspectJ笔记
AspectJ的概念
- 是一种静态编译期增强性AOP的实现
- 在编译过程中修改代码加入相关逻辑,无需程序员动手
AspectJ具体用法
- 下载安装AspectJ,启动jar文件,安装到JDK目录,添加path和classpath
- 切点与切面代码
- 切点前
package test.aspect;
//模拟权限检查
public aspect AuthAspect {
before() : execution(* test.service.*.*(..)){
System.out.println("模拟权限检查……");
}
}
- 切点后
package test.aspect;
//模拟日志输出
public aspect LogAspect{
//定义切点
pointcut logPointCut()
: execution(* test.service.*.*(..));
after(): logPointCut(){
System.out.println("模拟日志输出……");
}
}
- 环绕
package test.aspect;
public aspect TxAspect{
//测试环绕事务
Object around():call(* test.service.*.*(..)){
//代码前执行
System.out.println("模拟开启事务……");
//放行代码
Object rvt = proceed();
//代码后执行
System.out.println("模拟关闭事务……");
return rvt;
}
}
- 切点定义:
pointcut 切点名称():execution(* 包名.*.*(..));
注意:
- 如果没有事先声明切点,此时可以直接使用execution表达式作为切点使用
- execution关键词可使用call代替
- 声明切点后可以直接使用切点代替execution和call
本文为学习笔记,如需转载请注明出处