AspectJ是java Aop编译时增强的代表。
几个专业名词:
aspect 切面 解释:service包下面的所有类的所有get**()方法,算是一个切面
joinpoint 连接点 解释:在方法的开始,或方法的结束,或方法的开始和结束可以插入增强处理(只是说可以插入);
advice 增强处理 解释:在方法的开始,或方法的结束, 或方法的开始和结束插入的代码叫做增强处理;
pointcut 切入点 解释:在方法的开始,或方法的结束,或方法的开始和结束插入了增强处理的连接点被称为切入点,就是连接点插入了增强处理就变成了切入点;
aop代理方法 包括 目标方法和增强处理
增强处理类:
public aspect TxAdvice
{
before():execution(* com.sharp.service.*.*(..))//切入点
{
System.out.println("author check");//增强处理
}
Object around():execution(* com.sharp.service.*.*(..))//切入点
{
System.out.println("tx is open ");//增强处理
Object obj = proceed();//回调目标方法
System.out.println("tx is close ");//增强处理
return obj;//返回目标方法的返回值
}
after():execution(* com.sharp.service.*.*(..))//切入点
{
System.out.println(" tx advice log is saving.1..");//增强处理
}
after():execution(* com.sharp.service.*.*(..))//切入点
{
System.out.println(" tx advice log is saving.2..");//增强处理
}
}
目标类:
package com.sharp.service;
public class Hello
{
public void say(){
//连接点(这里可以插入增强处理)
System.out.println("hello is saying~~~~~~");//目标方法
//连接点(这里可以插入增强处理)
}
public void cry(){
//连接点(这里可以插入增强处理)
System.out.println("hello is crying~~~~~~");//目标方法
//连接点(这里可以插入增强处理)
}
}