依赖注入(dependency injection) aop另外一个有趣的地方就是提供了依赖注入。依赖注入是对象的申明包括信息,配置,服务 在运行时刻才被自动注入到服务中去,而不是在你的代码中指定。在j2ee中的javax.transaction.transactionmanager 是很多开发者需要用到的,但起始它是有很多实现的。 不同的框架需要不同的实现。使用aop的注释来实现选择用那个实现就是一个很好的方法。 首先我们还是要定义一个注释。 package org.jboss.aspects;import java.lang.annotation.elementtype;import java.lang.annotation.target;@target({elementtype.field})public @interface inject {} 然后我们实现我们的方面类,这里我们实...
mixins and introductions 很多人说道aop,都以为aop就是截取器,切入点表达式,方面和实现(advices)。其实aop不止这些,另外一个很重要的功能在jboss aop里面就是可以透明的给java类传入接口。你可以强制一个类实现的接口,甚至你可以附加另外的类(mixins)来实现这个接口。就像c++ 里面的多重集成。 引入 首先我们介绍怎么强制现有的类来实现你希望它实现的接口。 首先的例子是让一个非可持久化类实现持久化能力。这对你将是十分有用的代码。 public class pojo{private string field;} 要使它可以持久化很简单。 <introduction class="pojo"> <interfaces>java.io.serializable</interfaces><...
方法和注释 要把你的java代码和aop结合起来,可以使用一些标签,就像新的jdk5.0版本中的元数据以及xdoclet 。对于你的java方法,就有点像使用synchronized一样。当你把你的方法标注为synchronized,就表明 你高数jvm你的这个方法在执行的使用是需要同步的。注释标签允许你定义新的关键词用来处理你自己 的特殊行为。aop就使你有了把这些织入到你的应用中,以使应用可以执行的能力。 让我们看看我们使用自己定义的标签@oneway来使一个方法在后台的另外一个线程执行。 import org.jboss.aspects.oneway;public class foo{ @oneway public static void somemethod() {...} public static void main(string[] args) {someme...
学习笔记-aop的优点面对方法编程并不是要取代面对对象编程,而是要提高它。aop程序员一般来说都是90%使用oop来解决问题而10%是用aop来解决oop不能解决的问题。横切关注点(cross-cutting concerns) 很多时候你发现你的类并不能十分清晰和明白的表到你所想表达的功能意义,因为你真正的代码大多被其它代码所包围了。如果你想很好的扩展或集成你所想表达的功能意义,你最好就用方面的思想来考虑它了。 开发中的分层(layering based on deployment) aop另外一个很有用的地方就是可以用来为你的应用程序分层。很多时候你希望的一些特殊应用或类是可以很好的配置的,但同时也希望这些东西是不臃肿和可以扩展的。aop提供了很好的途径来分层这些复杂的东西。jboss aop提供了xml配置的机制来配置每个方面的开发。最好的例子就是缓存服务,它提供了不同的锁机制。这些...
一些术语concern:一个特定的问题,关注点。这并不是aop中才有的概念,oo中也有concern,只不过是采用oo的方法来实现。crosscutting concern:其实现切过了多个类的concern,比如安全检查,事务处理等。aspect:模块化的crosscutting concern。也就是将安全检查之类的在许多类中都要用到的通用功能,用统一的模块化的代码加以提取实现。这就是所谓的方面。这其实也可以使用面向对象的方式来实现,只不过在aop中不需要在用到这些功能的地方进行显示调用。对于业务程序员,方面模块是透明的。join point:程序执行过程中的连接点,切换点。aop就是在这些点中打入锲子,将aspect(方面)切入到连接点中,包括三种:l 方法调用点l field访问点l 异常抛出点advice:也就是aspect的具体实现,在join point中插入的东西,在程序执...
面向方面编程(aop)是一种新的规范,允许你达到以前面对对象方法无法达到的组织和分层你的应用程序的方法. 方面允许你很明显的把功能性的东西粘合起来,所以你就可以很方便的为程序设计很多的层。aop可以拦截所有java程序中的事件触发。什么是aop? 一个方面(aspect)就是一个共有的特性,具有此代表性的有:横向分离的方法,类,对象层次或者实体对象模型。它们看起来应该是组合在一起的,但是在aop里面你不用像以前面对对象(oo)那样来组织它们了。 在传统java中要加入计算时间的代码到你的应用中,你必须按以下方式:public class bankaccountdao{public void withdraw(double amount){long starttime = system.currenttimemillis();try{// actual method body...}fina...
使用j2ee 构建服务作者:debu panda05/25/2005翻译:magic003版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明英文原文地址:http://www.onjava.com/pub/a/onjava/2005/05/25/j2ee-services.html中文地址:http://www.matrix.org.cn/resource/article/43/43674_j2ee.html关键词: j2ee service如今,web services 是一门流行的实现面向服务应用的技术。j2ee已经成为一个流行的用来部署web services 应用的平台。并且,j2ee1.4制定了在java平台上建立和部署web services应用的标准。在我的上一篇文章中,我从一个java开发者的角度介绍了面向服务架构。在这篇文章中,我将说明如何...
xml——连接sql和web程序的桥梁作者:alexander prokhorenko,olexiy prokhorenko译者:aaron chu(acdemo@gmail.com)08/22/2005版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明英文原文地址:http://dev2dev.bea.com/pub/a/2005/06/xml_bridge.html中文地址:http://www.matrix.org.cn/resource/article/43/43673_xml_sql_web.html关键词: xml sql web摘要过去几年xml技术作为internet上交换信息的格式受到了极大的欢迎。今天xml常常被描述成一种孤立的技术,但它最初诞生的时候却是一种(介于html和sgml之间的)internet技术。本...
装饰servlet request对象作者:budi kurniawan05/30/2005翻译:sarkuya版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明英文原文地址:http://dev2dev.bea.com/pub/a/2005/05/decorators.html中文地址http://www.matrix.org.cn/resource/article/43/43603_servlet_request.html关键词:servlet requestfilter decorator摘要装饰模式是erich gamma等人所著的《设计模式:可利用面向对象软件的基础》一书中众多模式之一。一般来说,此模式在设计swing的程序员中比较流行,他们用它来改进软件。今天,即使有许多程序是基于web应用的,装饰模式仍有用武之地,在j2ee的环境下也有使用的价...
使用jena rdf api 开发脚本语言管理资源描述框架模型(resource description framework models)译者:gracepige-mail & msn : zhangchi_nwpu@hotmail.com版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明英文原文地址:http://www.javaworld.com/javaworld/jw-07-2005/jw-0704-jena.html中文地址http://www.matrix.org.cn/resource/article/43/43598_rdf_java.html关键词:resource description framework models rdf xml jena protégé 摘要资源描述框架(resource d...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器