Python 还能承担下一个时代的发展重任吗?Mojo 语言的横空出世对 AI 研发生态有什么影响? 了解详情
写点什么

Java EE 6 Platform 草案包含了 Web Profile

  • 2009-02-03
  • 本文字数:2192 字

    阅读完需:约 7 分钟

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

2009-02-03 22:552120
用户头像

发布了 150 篇内容, 共 41.4 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

AI与全民开发:挑战和机会并存

草料二维码

AI 无代码 全民开发

看火山引擎DataLeap如何做好电商治理(一):挑战与痛点

字节跳动数据平台

监控 模型 电商 数据平台 DataLeap

「微服务」这10道Consul面试题值得一看

王中阳Go

golang 微服务 面试题 服务发现 服务注册

盘“底座”,盘出新生意经

用友BIP

业务出海,华为云全球加速服务GA助一臂之力

轶天下事

案例实践|云智慧ITSM产品在利星行汽车的运维实践

云智慧AIOps社区

运维 ITSM ITSM软件 ITSM解决方案 IT 运维

【web 开发】生活中大家都喜欢搞模板来规范化操作,抽象类却玩不明白-PHP的抽象类(63)

迷彩

模板 抽象类 三周年连更 抽象方法

Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了

程序知音

Java RocketMQ 消息中间件 Java进阶 后端技术

【云管平台】2023年云管平台厂商排行榜

行云管家

云计算 企业上云 云管平台 行云管家

横空出世!复盘B站面试坑我最深的Java并发:JDK源码剖析

做梦都在改BUG

Java 源码 jdk 高并发

Hive SQL on Flink 构建流批一体引擎

Apache Flink

大数据 flink 实时计算

selenium源码通读·13 |webdriver/support分析

虫无涯

Python 源码 测试 自动化测试 selenium

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年4月刊

墨天轮

MySQL 数据库 oracle postgresql 国产数据库

selenium源码通读·11 |webdriver/common/touch_actions.py-TouchActions类分析

虫无涯

Python 源码 测试 自动化测试 selenium

华为云大数据治理轻量级解决方案为中长尾企业赋能

轶天下事

一文带你直观感受,BPM管理系统如何在低代码平台实现搭建

加入高科技仿生人

低代码 数字化 系统开发 BPM

太强了!京东首席架构师深邃洞察:服务化+云原生+微服务

做梦都在改BUG

Java 架构 微服务 云原生

Wallys AP controllers devices/IPQ4019 and IPQ4029 chipsets provide centralized management.

Cindy-wallys

IPQ4019 ipq4029

企业办公转型的出路在哪里?华为云桌面开创办公新形式

轶天下事

神奇,声网Web SDK还能这么实现直播中美颜功能

声网

前端 Web RTC 美颜

kafka高性能设计之内存池

做梦都在改BUG

Java kafka 系统设计 高性能 内存池

从源码全面解析Java 线程池的来龙去脉

做梦都在改BUG

Java 源码 线程池

05.01~05.07 NFT 生态热点汇总

NFT Research

NFT NFT\ #Web3

去哪儿网异常统计分析实践——Heimdall

Qunar技术沙龙

去哪儿网 Heimdall

联合索引该如何选择合适的列?

江南一点雨

MySQL

Unity 发布《金融科技类APP用户调研报告》,应用内广告和搜索广告成为获客突破口

Geek_2d6073

虚拟模块在前端开发中的应用与示例

Lee Chen

JavaScript 前端

selenium源码通读·12 |webdriver/remote分析

虫无涯

Python 源码 测试 自动化测试 selenium

全网更简单的方法,教你一键接入微信公众号,包教包会。包你成功。三包

派大星

ChatGPT

流行的DJ音乐混音软件:X Djing - Music Mix Maker for Mac

真大的脸盆

Mac Mac 软件 音乐混音软件

ChatGPT会如何影响我们,会让我们失业吗?兼与吴军博士商榷 | 社区征文

李韧

人工智能 ChatGPT 三周年征文

  • 扫码加入 InfoQ 开发者交流群
Java EE 6 Platform草案包含了Web Profile_Java_Dio Synodinos_InfoQ精选文章