王海龙 (buaawhl@sina.com)
网上出现了很多讲解aspectj的资料,但大多是从讲解aspectj语法开始,本文从另一个角度讲解aspectj,作者着重介绍了aspectj的设计思路与运行原理.1. 序 【程序编程相关:交通银行香港分行实施 Linux 前端系】
2003 年 7 月 【推荐阅读:1993 年 8 月 16 日 Debi】aspectj是aop的java语言的实现,获得了java程序员的广泛关注. 【扩展信息:榜眼之争: Mac 和 Linux 谁居】
aspect oriented programming (aop)是近来一个比较热门的话题.关于aspectj与aop的具体资料,请从下列链接中查找:
http://www.eclipse.org/aspectj/
http://www.parc.com/research/csl/projects/aspectj/http://aosd.net/网上出现了很多讲解aspectj的资料,但大多是从讲解aspectj语法开始,然后讲解如何应用aspectj,如何分离软件开发过程的不同方面(aspect)--log,session,authentication and authorization,transaction,等等.
初次接触aspectj的读者看到这些资料(或者语法手册),会感到aspectj有些神秘.他们想知道,aspectj是如何做到这些的?aspectj是怎样工作的?aspectj需要特殊的运行环境吗?
本文从另一个角度讲解aspectj,本文从讲解aspectj的设计思路.运行原理入手,回答上述问题.
本文讲解的主要内容,按照概念的重要程度,排列如下:
aspectj是一个代码生成工具(code generator). aspectj语法就是用来定义代码生成规则的语法.您如果使用过java compiler compiler (javacc),您会发现,两者的代码生成规则的理念惊人相似. aspectj有自己的语法编译工具,编译的结果是java class文件,运行的时候,classpath需要包含aspectj的一个jar文件(runtime lib). aspectj与xdoclet的比较.aspectj与ejb descriptor的比较.本文的原则是,只细讲其他资料没有讲到的东西,其他资料讲过的东西,不讲或略讲.以节省网络资源,更为了节省大家宝贵的时间.j
2.aspect oriented programming (aop)
本节简单介绍aop的概念,解释我们为什么需要aop. ... 下一页