我们为什么需要Java EE 5.0?

thesixthday 2006-11-28 03:20:29
我们为什么需要Java EE 5.0?
作为主流中间件技术标准J2EE诞生6年后的下一代企业级开发规范,Java EE 5.0从一开始就倍受关注,引发了无数辩论和众多期盼。它重点关注目前Java应用开发的热点:运行可靠性、开发效率、扩展灵活性及企业应用整合,顺应轻量级、简单化趋势,给开发者和企业带来真正的实惠。
什么是Java EE 5.0?
“Do more with less work”,这是Java EE 5.0的正式宣言,也是其与J2EE 1.4最显著的区别。Java EE 5.0提供了诸多新特性以简化应用的开发,譬如:
 通过Annotation代替旧有的xml配置文件;
 重新设计的EJB 3.0变得轻量与简单;
 基于组件化的JSF Web编程模型;
 与JAX-RPC相比更易使用的JAX-WS等Web Services相关规范;
 拥有了诸如依赖注入、AOP编程等以往开源框架才拥有的功能等等。
图中蓝底白字部分是Java EE 5新的功能,从下图可以看到,在WEB层加入了JSF这个新的表现层框架。EJB从EJB2.0升级到EJB3.0。Java 5.0还加入了Annotations,通过Annotations引入,降低Java EE开发成本。
Java EE 5.0架构图

为什么我们还需要Java EE 5.0?
在谈论Java EE 5.0众多新特性的时候,我们面对这样一个问题:在J2EE 1.4依然占据主流开发地位,并且除官方标准以外,还拥有很多丰富的开源框架可供选择的今天,为什么我们还需要Java EE 5.0?
首先,作为官方标准的J2EE 1.4,是一种过度理论化的计算模型,无论是开发效率还是运行期性能,都已经日显老态;其次,在诸多开源框架的冲击下,J2EE 1.4的功能局限性也日益暴露出来,譬如:与Entity Bean相比,Hibernate提供了更好的OR Mapping解决方案;与Session Bean相比,Spring Framework对Bean的管理更简单,更高效,功能也更丰富;与单纯的JSP/Servlet相比,Struts、WebWork能够在更高层次上解决Web开发的复杂度问题。
人们是智慧的,业界既需要代表现实主义的官方标准和商业软件的存在,也同时需要代表理想主义的开源组织和开源软件的存在。尤其是在Java EE 越来越 Open的今天,我们甚至已经忽略了哪些特性是官方标准应该具备的、哪些特性是开源软件应该具有的。事实上,整个业界都在迫切等待下一代J2EE规范的诞生,而一旦该规范诞生,它将汇集整个业界的智慧,融合已有开源框架的优秀特性,并使商业软件或开源软件迅速向其靠拢。而它,就是Java EE 5.0!
Java EE 5.0新特性介绍
 Annotation
Annotation中文意为标注,是JDK 1.5中引入的非常迷人的特性之一,通过在Java代码加入元信息(Meta Data),影响工具和库对代码的处理。在Java EE 5中,增加了在POJO(Plain Old Java Object)中进行Annotation功能。Annotation可以用于:
 定义和使用Web Service
 开发EJB组件
 映射Java类到XML
 映射Java类到DB
 指定外部依赖
 指定部署信息,包括安全属性等

有了Annotation,XML部署描述符不再是必须的,应用的打包从而变得简单起来,如我们熟知的WAR应用中的WEB-INF/web.xml将不再需要,部署信息通过Annotation进行表述,应用部署更加灵活。

下面是Java EE 5中使用Annotation定义Web Service的一个例子:
package endpoint;

import javax.jws.WebService;

@WebService
public class Hello {

public String sayHello(String param) {
return “Hello “ + param;
}
}




金蝶中间件已经推出通过了Sun Java EE 5兼容性测试、支持Java EE 5的应用服务器,听说是全球第4家通过Java EE 5的认证产品。
十二月八日下午一点半金蝶中间件将在北京长城饭店二楼3号宴会厅为这个事搞个活动,听一个金蝶的哥们说只要到会的都有苹果多用USB转换器赠送,还有五台佳能数码相机共抽奖。各位感兴趣的话可以去碰碰运气。
...全文
307 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfyfngu 2006-11-28
  • 打赏
  • 举报
回复
namespace endpoint

using ...

[WebService]
public class Hello
{
public string sayHello(string parm)
{
return "Hello "+parm;
}
}

越来越象dotNET了,看到时javaer还怎么看不起dotNET
dashi 2006-11-28
  • 打赏
  • 举报
回复
:)

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧