2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Java EE 6 最终草案暗示了平台的未来发展方向

  • 2009-10-19
  • 本文字数:1333 字

    阅读完需:约 4 分钟

JSR-316(Java EE 6)专家组最近发布了规范的最终草案。相对于早期草案来说,最终草案有3 个重要变化,分别是增加了 JSR-330 (针对 Java 的依赖注入)、 JSR-299 (针对 Java EE 平台的上下文与依赖注入,以后称之为“CDI”)以及 JSR-303 (Bean Validation),这三个规范都将成为完整平台与 Web 的必要组件。为了搭配 CDI 与 JSR-330,专家组又提出了另一个最终草案,该草案重用了 JSR-330 中定义的依赖注入注解,同时增加了针对 EJB Session Bean 的构造注入和其他微小变化。

除了此前发布的 Web Profile 和完整的规范文档外,专家组还为 Managed Bean 增加了一个规范文档。所谓 Managed Bean,其实就是被容器当作受管理组件的一些 Java 类,它在 CDI 和 JavaServer Faces 中得到了广泛的应用。此外规范还引入了 EJB Lite,这样我们就可以在完整的 Java EE 容器外使用 EJB Session Bean 了,这意味着三种概念能独立存在于 Java EE 平台之上。类似的概念早就存在于那些广泛应用的框架中了,如 Spring 和 Seam 等。Managed Bean 支持一些基本服务,如资源注入、生命周期回调以及拦截器等等。其他规范可以构建在该定义之上并添加其他服务,比如 CDI 增加了依赖注入、EJB Session Bean 增加了事物、远程等等。Roberto Chinnic 在其博客上给出了如下示例:

给定一个 JAX-RS 资源类,你可以通过添加一个 @ManagedBean 注解、一个 EJB 组件注解(@Stateful)或是一个 CDI 注解(比如 @Default)将其转换为 Managed Bean。反之亦然,若给定的类来自于 Managed Bean 或是 EJB 组件,那么我们可以通过添加一个 JAX-RS @Path 注解将其转换为 JAX-RS 资源类。以此类推,Servlet、JAX-WS 端点类或是(大多数)Java EE 6 中的任何其他组件类型都可以这样。

虽然目前 Managed Bean 规范的影响还不算大,但它却非常重要,因为这暗示了 Sun 对于整个 Java EE 平台走行方向的想法。尽管还需要对规范加以修改以让整个 Java EE 平台符合其要求,但不难看出 Managed Bean 和 Java EE 5 平台所引入的基于注解的编程模型最终可以让开发者从 Java EE 容器所提供的众多服务和组件中按需选择。同时,简单的 Managed Bean 模型补充了平台下的扩展点和服务供应者接口,为 Java 框架和产品开发者提供了一种标准化机制以在平台上进行分层,这也是 Java EE 6 平台的一个主要目标。

Sun GlassFish V3 很可能成为首个提供完整平台支持的应用服务器,现在其预览版已经发布了。JBoss 5.2 的下一beta 版将提供某些Java EE 6 支持,包括JavaServer Faces(JSF)2.0、Java Persistence(JPA)API 2.0、Bean Validation 以及新版本的CDI。SpringSource 也宣布支持部分新标准。Spring 3.0 将支持JSF 2.0、JPA 2、Bean Validation 以及JSR-330。未来的Spring 3.x 将支持Java EE 6 其他的API,包括Servlet 3。

就IDE 支持来说, NetBeans 6.8 将支持JSF 2.0(包括Facelets)、JPA 2.0 以及针对GlassFish V3 的增量部署。现在 NetBeans 6.8 M2 已经可以下载了。JetBrains 也紧紧跟随着Java EE 6 的变化, IntelliJ IDEA 9 将支持 JPA 2.0、EJB 3.1、JSF 2.0、Servlet 3、CDI、Bean Validation 以及 GlassFish 3。

查看英文原文: Java EE 6 Proposed Final Draft Hints at Future Direction of the Platform

2009-10-19 13:042917
用户头像

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

关注

评论

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

白皮书丨关于工业互联网,你想知道的都在这儿

华为云开发者联盟

工业互联网 华为云 白皮书 ICT 智能

五周 - 总结

水浴清风

go-zero 如何扛住流量冲击(二)

万俊峰Kevin

microservice Go 语言

Python进阶——什么是上下文管理器?

Kaito

Python

Week 10 作业

黄立

架构师训练营第 1 期 - 第十周总结

Todd-Lee

极客大学架构师训练营

WSL2:我在原生的Win10玩转Linux系统

梁桂钊

数仓搬迁:从方法到实践,带你解决数据一致性对比

华为云开发者联盟

数据仓库 数据 存储 数据校验 搬迁

清华大佬马士兵告诉你从阿里P5级一直学到P8架构师的成长路线+视频教程!

比伯

Java 编程 架构 面试 计算机

深入浅出Spark

大数志

大数据 spark 数据科学

iOS 项目避坑:多个分类中方法重复实现检测

iOSer

ios 项目管理 编程语言 iOS Document

Redis面试受阻?阿里P8架构师整理出的核心笔记+实战+面试题+脑图送你

比伯

Java 编程 程序员 面试 计算机

区块链技术赋能信息通信行业信用监管

CECBC

区块链 信用

让“数字鸿沟”变为“数字通途”

CECBC

数字化时代 支付产品

学习工作即游戏:游戏化生存的现实物语

脑极体

和同事交流不会kafka怎么行,API奉上,不是大神也能编

小Q

Java 学习 架构 面试

Linux IO模式及 select、poll、epoll详解(含部分实例源码)

linux大本营

c++ Linux 后台开发 异步IO epoll

我是如何在五年阿里面试官的连珠炮问下三面斩获Java岗offer,最后定级P6的呢?

Java~~~

精心整理MySQL基本使用(数据库的操作、数据类型、MySQL的常用命令)

ShenDu_Linux

c++ MySQL 程序员 数据类型

《具有算法和程序的离散数学基础》PDF免费下载

计算机与AI

算法 离散数学

tcp/ip协议栈——epoll的内部实现原理

Linux服务器开发

后端 TCP/IP epoll 网络协议栈 服务器开发

阿里要求其内部程序员必须精通的并发编程笔记:原理+模式+应用

Java架构追梦

阿里巴巴 编程 面试 并发 java架构

食堂就餐卡系统UML设计

简简单单

架构师训练营第 1 期 - 第十周作业

Todd-Lee

极客大学架构师训练营

多线程源码明白了吗?不明白的话来看腾讯大牛给你画的面试重点

小Q

Java 学习 架构 面试 线程

美团Java面试一轮游,太激烈了,问啥啥不会,我该怎么办?

比伯

Java 编程 架构 面试 计算机

我就不信2W字把源码拆的这么碎,你还不明白mybatis缓存

996小迁

Java 源码 架构 面试 mybatis

一张图彻底理解Spring如何解决循环依赖!!

冰河

spring aop ioc 源码解析 循环依赖

讲真,你知道Python咋来的吗?

华为云开发者联盟

Java Python 编程语言 C语言 代码

架构师训练营第十周课后作业

Gosling

极客大学架构师训练营

如何应对Spark-Redis行海量数据插入、查询作业时碰到的问题

华为云开发者联盟

数据库 redis spark 开源 数据

Java EE 6最终草案暗示了平台的未来发展方向_Java_Charles Humble_InfoQ精选文章