http://www.zdnet.com.cn/news/software/story/0,3800004741,39173294,00.htm
作者: ZDNet China
Thursday, September 25 2003 2:26 PM ZDNet China 9月25日报道:IBM与开放源代码Java软件商JBoss有意进行一项Java标准化计划,意在制约日益受到欢迎的微软C#语言。
两家公司目前独立投资于一项软件开发技术-AOP(aspect-oriented programming),可加速应用开发速度,且更具弹性,并不易出错。
JBoss企业开发与策略副总裁Bob Bickel透露,现在两家公司有意把AOP变成Java的标准功能。JBoss最近已加入Java正式开发机构Java Community Process。
把AOP加入Java规格至少还需一两年时间,此举可让Java开发人员获得更先进的程序编写技术。JBoss与IBM联手要将AOP加入Java的主因来自于微软在C#语言上的成功。C#语言在许多方面都具有Java的特质。JBoss主管认为微软通过各种手段意欲以C#取代Java。
“JBoss与IBM都相当关切C#热门度有超越Java的迹象。”Bickel表示。
微软没有立即针对此事发表评论。
JBoss免费提供JBoss Java服务器软件,营收来源以销售服务为主;IBM去年则挤下BEA成为Java应用服务器软件市场的龙头老大。
对于Java阵营而言,如何让Java开发人员更具生产力可说是对付微软竞争的当务之急。
Java原创者Sun计划推出Project Rave开发工具,意在针对微软Visual Basic工具最厉害的简易应用开发上。BEA上月也推出WebLogic Workshop 8.1,企图拿下更大的Java服务器软件占有率。
Forrester分析师John Meyer表示,短期内,简单易用的工具将有助于加速Java开发,且也有助于让Java迎头赶上微软相当成功的开发工具产品线。
“这是持续性成熟的过程。”Meyer表示,“工具通过标准审议后还需几年时间才会被产业与大众所接受。”
AOP技术虽然还非主流程序工具,但Java厂商指出这些先进技术有助于长期发展。
BEA上月推出的WebLogic Aspec Framework就是要让Java开发人员以BEA的WebLogic工具与服务器软件来尝试AOP技术。
IBM Research也在好几项计划中投资AOP,包括一项称为HyperJ计划。IBM同时在开放源代码开发工具计划Eclipse中加入AOP专用的AspecJ语言的研发工作。
JBoss创始人Marc Fleury表示,微软的.Net Framework其实借用了许多AOP技术,只是微软在营销上不使用此名词。
Fluery指出,JBoss 4.0中加入的 aspect-oriented结构是学习Visual Basic .Net的开发便利性。后者在开发过程中会把比较困难的程序工作(如交易或快取)以简单的卷标来做运用。
曾参与过最早期AspectJ计划的Ron Bodkin对于AOP在商业系统上的采用表示相当乐观。他表示,对此需求的最大驱动力来自于J2EE系统在编程上过于困难,使得应用开发流程速度过慢,造成企业内部会堆积许多应用开发的请求。
不过AOP要成为主流前还会面临一些阻碍。虽然AspectJ算是Java的延伸,但开发人员还是需要将过受训才会使用新技术。另外,Bodkin也指出,产业目前尚未有共识何谓aspect-oriented程序工具,对于该技术的未来走向也不明确。
“面向对象编程目前还是在初期发展阶段,大家对于对象的定义有相当分歧。标准化虽然有帮助,但在现阶段中,开放源代码对于程序人员会更有用些。”Bodkin表示。(陈奭璁/熙平)
分享到:
相关推荐
AOP联盟:aopalliance.jar API包a set of AOP Java interface .
5. `<aop:before>`, `<aop:after>`, `<aop:around>`, `<aop:after-returning>`, `<aop:after-throwing>`:这些子元素分别定义了不同类型的通知。例如,`<aop:before>`定义了一个前置通知,它在目标方法执行前运行;`...
4. **丰富的切入点表达式语言**:Spring AOP支持使用SpEL(Spring Expression Language)来定义复杂的切入点表达式,这让开发者能够更加灵活地控制通知的触发条件。 #### 四、Spring AOP的实现示例 接下来,我们...
<aop:aspectj-autoproxy /> ``` 或者,在使用Java配置时,在`@Configuration`类中添加`@EnableAspectJAutoProxy`注解: ```java @Configuration @EnableAspectJAutoProxy public class AppConfig { // ... } ``` ...
package com.gc.aop下为:aop方式ProxyFactoryBean代理...package com.gc.javaproxy下为:java代理机制实现 package com.gc.proxy下为:自定义代理模式(面向接口编程) package com.gc.normal下为:通用日志处理方式
配置方面,Spring支持注解驱动的AOP,只需在XML配置中添加`<aop:aspectj-autoproxy/>`,Spring就会自动扫描并处理带有@Aspect注解的类。测试方法`springAopTestService`展示了如何通过Spring容器获取Bean并执行方法...
在编译时,AspectJ编译器会将这些注解转换为AspectJ语言的切面,然后在运行时由Spring AOP加载和应用。 总的来说,Spring的AOP机制通过动态代理技术,实现了对横切关注点的透明化处理,降低了系统的复杂度。通过对...
虽然AOP目前的应用范围有限,只适用于少数编程语言,且通常需要源代码才能进行织入,但它被寄予厚望,被认为能深刻改变软件开发的方式,尤其是与“用例驱动”的开发思想相结合时。 AOP与OOP并不矛盾,而是互补。OOP...
标签:glassfish、external、repackaged、aopalliance、hk2、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持...
标签:glassfish、external、repackaged、aopalliance、hk2、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
在Spring中,AOP的配置可以通过XML或Java配置来完成,现在更多地倾向于使用Java配置和注解。例如,定义一个切面类,并使用`@Pointcut`定义切点表达式,这是一段代码执行的特定位置。切点表达式可以基于方法名、类名...
SPRING:AOP
在Java开发领域,AOP(Aspect Oriented Programming,面向切面编程)作为一种重要的编程范式,为解决模块化编程中的横切关注点问题提供了新的思路。AOPalliance是AOP框架之间的一个接口标准,它定义了一些基本的切面...
标题: 如何使用 Java 编写一个简单的 AOP 框架 作者: 超逮虾户 摘要: AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它允许程序员以模块化的方式添加功能到应用程序。AOP 框架通过在程序...
XML配置中,我们定义<aop:config>元素来开启AOP支持,然后使用<aop:pointcut>定义切点,<aop:advisor>定义通知,最后通过<aop:aspect>来组合切点和通知。而在注解方式下,我们可以使用@Aspect、@Pointcut、@Before、...
《AOP Alliance 1.0:Java中的面向切面编程集成框架》 AOP Alliance是一个在Java生态中广泛使用的开源项目,其1.0版本的发布对于理解和实践面向切面编程(Aspect-Oriented Programming,AOP)具有重要意义。本资源...
在Spring XML配置文件中,可以通过`<aop:config>`元素来配置切面。也可以使用注解方式,通过`@Aspect`注解定义切面,`@Pointcut`定义切点,`@Before`, `@After`, `@AfterReturning`, `@AfterThrowing`, `@Around`...
Spring AOP是Spring框架的一个重要组成部分,它为Java企业级应用提供了切面编程的实现。Spring AOP允许开发者专注于核心业务逻辑,而把非业务相关的关注点,如日志、事务管理等,分离出来,从而提高开发效率和代码可...
基于Spring boot + maven,以注解+AOP方式实现的java后端项目接口参数校验框架。迄今为止使用最简单、最容易理解的参数校验方案。博客地址:https://blog.csdn.net/weixin_42686388/article/details/104009771
在使用spring的aop功能时,这两个jar是必须的,否则会报错,如下: Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException at java.net....