`
forsecond
  • 浏览: 46428 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

AspectJ

阅读更多
1:Eclipse安装aspectj
http://www.eclipse.org/ajdt/downloads/这个里面有对应版本,可以选择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类似。
2
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics