BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Java EE 6 Platform草案包含了Web Profile

| 作者 Dio Synodinos 关注 3 他的粉丝 ,译者 宋玮 关注 0 他的粉丝 发布于 2009年2月5日. 估计阅读时间: 8 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Java EE 6 Platform规范的公共草案已经发布了,其将对公众评估和反馈保持开放,直到2009年2月23日为止。 或许这一 迟到的草案最引人注目的地方就是Web Profile,这是Java EE平台历史上第一个profile。

规范的领导者Roberto Chinnici对这一Web Profile做了概述

经过深思熟虑,平台专家组选择中等版本的Web Profile,接近我先前博文中所提到的选项B。

所需的技术包括:

Servlet 3.0
JSP 2.2
EL 1.2
对其他语言的调试支持(JSR-45) 1.0
JSTL 1.2
JSF 2.0
JSR-250 1.1
EJB 3.1 Lite
JTA 1.1
JPA 2.0

你可能注意到有些版本号与最新发布的API(比如 EL 1.2)并不匹配。这是因为我们计划经由一个维护评估来改动相应技术的小版本号。当它们可用时我会提供更多细节。

Web Profile的基本情况在草案中做了解释:

Web Profile定位于现代Web应用的开发者。

至于“现代”这个词,我们主要是想强调这样一个事实:自从第一个Servlet规范问世以来,Web应用世界已经有了长足的发展。不可避免的,许多用于创建即便是简单Web应用的技术也得到了跳跃式发展。实际上,今天很少有Web应用是直接用servlet API编写的:大多数应用都依赖于标准的或第三方框架和类库(通常是开源的),它们间接用到了servlet容器的服务。

除了管理HTTP交互,大多数Web应用在事务管理、安全和持久化领域有相当大的需求。有时,这种需求完全可以用Java EE平台的部分技术来解决,比如Enterprise JavaBeans (EJB) 3.x和Java Persistence API,但是它们很少能由“普通(plain)” servlet容器支持。通过合并这些API,Web Profile的目标是改善使用Java平台开发Web应用应该被考虑的基本技术栈。

定位为“现代”Web应用就暗示着要提供相当完整的技术栈,包括标准API、成品即可满足大级别Web应用需求的能力。更进一步,这一技术栈应该易于成长,以解决其余开发者的需求。

与走向完整性相反,另一方希望就限制Web容器内存占用的愿望做出平衡,这既包括物理方面也包括概念方面。从开发者学习Web Profile的观点来看,与一个功能更强大但是过于复杂累赘的profile相比,拥有一个小型的、功能集中的profile更有价值,而且技术之间重叠要尽量少。

在定义Web Profile过程中,我们努力在这两种需求之间寻找平衡。

在完整性方面,Web Profile提供了一个完整的技术栈,其所具有的技术能够处理展现和状态管理(JavaServer Faces、JavaServer Pages)、核心Web容器功能(Servlet)、业务逻辑(Enterprise JavaBeans Lite)、事务(Java Transaction API)、持久化(Java Persistence API)以及更多。

至于简单性,它省去了很多企业后台API,它们都是Java EE平台的一部分。它还依赖于Servlet规范中新的可插接特性(参见文档的第8.2节)以允许应用以最小的配置使用扩展了servlet容器的类库。例如,Java API for Restful Web Services(JAX-RS)是完整Java EE平台的一个标准的技术,但却不是Web Profile的一部分,它可以不用对应用的Web.xml描述符做出任何改变就被“插接”到Web容器中。

最终,值得提醒的是,Web Profile产品发行可以不限于必须的技术,还可以发行更多的技术。因此在安装时可能要在不同配置之间做出选择,除了必须的核心,可以安装一些更丰富的扩展,或者完全自定义安装(“手动选择”安装)。

Roberto还解释了为什么JAX-RS不是Web Profile一个必须的组件,因为专家组感到把它包含进来还为时过早。

缺少的其它东西还有Web Beans,它在Web Profile和完整平台中都没有被列为必须组件:

Web Beans在Web Profile和完整平台中都没有被列为必须组件。另一方面,在EE.6.29节提到了正在考虑列入的组件。就这一主题专家组恳请来自社区的反馈。

敏感读者还会注意到Web Beans规范(目前是公共草案)就在昨天进行大量更新。Gavin King的 博文记录了这些改变的详细内容,它们大多是由来自JSR-316专家组的反馈触发的。最大的变化之一是,“Web Beans”术语本身已经从规范中消失了。尽管这对有些人来说是一个打击,但是它确实有利于开发,因为这意味着Web Beans提供的功能与已确立的Java EE“容器”和“组件”概念相合并。我认为最终的结果是一个更便于使用的、更好集成的、更易于学习的“Web Beans”、为整个Java EE平台提供的上下文支持和依赖注入。

Bean Validation也没有被列为Java EE 6组件JSR:

敏感的读者还会注意到JSR-303曾在公共评估版中出现,但却也未列入Java EE 6组件JSR。这只是时间问题;平台专家组刚刚开始讨论是否将JSR-303包含进来,因此在平台规范的公共草案发布之时还未做出这一决定。我要指出的是,由Emmanuel Bernard领导的EJSR-303专家组在解决JPA和JSF的校验领域需求方面已经做了大量工作,因此我确信JSR-303终将被社区所接受。

草案可供下载并包含了Java EE 6 规范和Web Profile规范。

关于社区对于该新规范的想法,在java.net上有一个关于此的投票。尽管投票的人为数不多,但结果显示该版本草案并没有激发起大家的兴趣

我喜欢它   12.1%
我认为主体规范缺少了重要JSR   3%
我认为web profile规范缺少了重要JSR   6%
由于一些其它原因我不喜欢它   6%
我还没有看过,但是打算看一下   9%
我还没有看过,而且不打算看   63.6%

从InfoQ的Enterprise Java主题下可以找到更多信息。

查看英文原文:Java EE 6 Platform Draft Published featuring the Web Profile

 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Web Profile by Cheung Yawolf

期待

grails已实现了从显示层到数据持久层的技术栈 by chen index

grails已实现了从显示层到数据持久层的技术栈

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT