【学习笔记】AspectJ笔记

AspectJ的概念

  1. 是一种静态编译期增强性AOP的实现
  2. 在编译过程中修改代码加入相关逻辑,无需程序员动手

AspectJ具体用法

  1. 下载安装AspectJ,启动jar文件,安装到JDK目录,添加path和classpath
  2. 切点与切面代码
  • 切点前
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;
	}
	
}
  1. 切点定义:pointcut 切点名称():execution(* 包名.*.*(..));

注意:

  1. 如果没有事先声明切点,此时可以直接使用execution表达式作为切点使用
  2. execution关键词可使用call代替
  3. 声明切点后可以直接使用切点代替execution和call

本文为学习笔记,如需转载请注明出处

posted @ 2018-09-11 17:26  东北小狐狸  阅读(310)  评论(0编辑  收藏  举报