1:Eclipse安装aspectj
[url]http://www.eclipse.org/ajdt/downloads/[/url]这个里面有对应版本,可以选择url更新。
2:选中已有工程 aspectj tools添加aspectj jar
3:小例子
例子很简单,就是对dao里的save操作切点,打印点相关信息。
让我奇怪的是before after around的顺序有关系,把around放在after下会直接导致编译不过去,此外around与其它的优点区别proceed(),这我感觉有点点跟filter里的chain类似。
[url]http://www.eclipse.org/ajdt/downloads/[/url]这个里面有对应版本,可以选择url更新。
2:选中已有工程 aspectj tools添加aspectj jar
3:小例子
public aspect LogAj {
pointcut beforeMsg() : execution(* com.jz.dao.impl.*.save*(..));
pointcut afterMsg() : execution(* com.jz.dao.impl.*.save*(..));
pointcut aroundMsg() : execution(* com.jz.dao.impl.*.save*(..));
before() : beforeMsg() {
System.out.println("before aspectj");
}
Object around() : aroundMsg() {
System.out.println("around aspectj");
Object result = proceed();
return result;
}
after() : afterMsg() {
System.out.println("after aspectj");
}
}
例子很简单,就是对dao里的save操作切点,打印点相关信息。
让我奇怪的是before after around的顺序有关系,把around放在after下会直接导致编译不过去,此外around与其它的优点区别proceed(),这我感觉有点点跟filter里的chain类似。