面向剖面编程(aop)与jboss_dreamji

面向剖面编程(aop)与jboss_dreamji

ID:34113183

大小:206.97 KB

页数:10页

时间:2019-03-03

面向剖面编程(aop)与jboss_dreamji_第1页
面向剖面编程(aop)与jboss_dreamji_第2页
面向剖面编程(aop)与jboss_dreamji_第3页
面向剖面编程(aop)与jboss_dreamji_第4页
面向剖面编程(aop)与jboss_dreamji_第5页
资源描述:

《面向剖面编程(aop)与jboss_dreamji》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇聚技术精英,增进技术交流www.javaresearch.org面向剖面编程与JBoss作者:比尔柏克,阿德莱恩布鲁克2003年5月28日翻译:JRJava技术文献翻译小组coolients网址:www.javaresearch.org日期:2004-06-12版本:1.0.0.0概述面向剖面编程(Aspect-OrientedProgramming,AOP)是一个令人振奋的新领域,它将带来的影响,应该不亚于面向对象编程(OOP)15-20年前所产生过的影响。不过AOP与OOP并不是相互竞争的两种技术,两者实际上互补得很好。OOP擅长于用模块概念

2、来描述对象层次关系(hierarchy)中的共同行为。但它也有局限性。如果一组互不关联的对象模块之间有一些共同行为动作需要处理,OOP就有点力所不逮。而这就是AOP登台亮相的时候了。当这些互相独立的不同对象模块有一些具有横切性(crosscutting)的事务行为需要定义时,AOP为你提供了方便,因为它能将有关功能行为表述为独立的层(layer),而不是将这些功能嵌入(embed)到当前模块中。这种程序描述方式改善了可读性,而且能使软件维护更为便利。OOP软件开发的构思是一个从上到下的纵式发展过程,而AOP却是个从左到右的横向过程。两者是垂直交切的

3、关系,但又有很好的互补性。我们知道OOP的装备是继承,封装和多态,而AOP的组件则是指示(advice)/拦截器(interceptor),引导(introduction),元数据(metadata)和切分点(pointcut)。下面我们介绍一下这些概念。指示/拦截器一个指示就是一段由特定事件触发的程序逻辑,是能够被插入在调用者(激活其它方法的主体)和被调用者(被激活的方法)之间的行为。指示其实就是AOP核心概念。指示使你能够将诸如日志和观测之类的功能运用在现有的对象模型上而不必过问实现细节。在JBossAOP中,我们是用拦截器来实现指示。你可以定

4、义拦截器,让它拦截方法调用、构造器调用和域访问。我们以后将讨论怎样将这些拦截器运用到现有的对象模块之上。1汇聚技术精英,增进技术交流www.javaresearch.org引导(introduction)借助引导,我们可以将方法或域增加到一个现有的类中。它们甚至允许你修改某个现有的类目前所实现的接口,并且引入一个实现了那些新接口的混合类。引导使你能够将多继承特性注入普通的Java类。一个极好的引导用例是你想让你手头处理的一个剖面有一个运行期接口。你希望这个剖面能跨越对象层次,在不同的对象类中能广泛地应用。但你同时也希望应用程序开发者能够调用专为剖面

5、制定的API.Appleapple=newApple();LoggingAPIlogging=(LoggingAPI)apple;Apple.setLoggingLevel(VERBOSE);引导可以用来将一个新的API追加到一个现有的对象模块上。元数据元数据是另一种能够追加到现有类之中的信息。它可以在在静态状态下或者在运行期追加。如果能够将元数据动态追加到一个给定的对象实例中,其意义就更大了。元数据最有用的一个情况是,你想写一个可运用于任何对象的全面通用的剖面,而程序逻辑却又需要知道各个类的具体信息。对于元数据的应用,有一个很好的类比,这就是EJ

6、B规范。在EJB的XML部署描述符中,你会针对每一个方法分别定义事务属性。应用程序服务器于是知道应该在什么时候和什么地方开始、挂起或者提交一个事务,因为你已经在EJB类和事务管理控件之间建立了元数据绑定关系(记录在bean的XML配置文件中),这些数据绑定关系定义了Required,RequiresNew,Support等等方法。C#直接把元数据作为内置成分。XDoclet是另一个元数据实际运用的好例子。如果你曾经用Xdoclet来生成EJB文件和部署描述符,你就会知道元数据的能量。Java社区行动(JavaCommunityProcess,JCP

7、)也认为,在JDK1.5中,Java语言应该加入元数据。(见JSR175)。不过,在JSR175实现之前,一个好的AOP框架也应该提供一种机制,用来声明在运行期有效的类级元数据。切分点如果说拦截器,引导和元数据是AOP的特征成分,那么切分点就是粘合剂。切分点告诉AOP框架,哪些拦截器绑定到哪些类,哪些原数据将应用于哪些类,或者哪一个引导将被引入哪些类。切分点决定了各种AOP特征将怎样被运用于你的应用程序中的类。2汇聚技术精英,增进技术交流www.javaresearch.orgAOP的实际运用例1.使用拦截器JBoss4.0带了一个AOP框架。这个

8、框架和JBoss应用服务器紧密地结合,但也可以在你自己的应用程序中独立运行。要理解一个概念,最好的办法莫过于看看它的实际应

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。