🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

Java EE 6 Platform 草案包含了 Web Profile

作者 Dionysios G. Synodinos译者 宋玮 发布于 2009年2月3日 下午10时55分

社区
Java
主题
Enterprise Application Blocks
标签
Java EE

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


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

留下你的脚步