QCon全球软件开发大会8折优惠倒计时最后3天,购票立减¥1760!了解详情 >>> 了解详情
写点什么

Jave EE 6 特性:依赖注入、Bean 验证和 EJB 增强

2009 年 12 月 13 日

Java EE 的最新版本提供了几项新特性,包括依赖注入、Bean 验证,以及 EJB Servlets JSF JSP 技术方面的增强。Sun 于上周四发布了 Java EE 6。本文概述了最新版本的几个新特性。在后续新闻中,我们将对这些特性进行详细报道。

Java EE 6 平台的三个主要目标是灵活的技术堆栈、增强的可扩展性、易于开发。

技术堆栈:
Java EE 6 引入了功能子集(Profile)和 Java EE 平台配置的概念,用来为应用指定特定的类。Profile 可以包含 Java EE 的技术子集,也可以同时包含或只包含那些已通过 JCP,但尚不属于 Java EE 平台的技术。新版本带有一个名叫 Web Profile 的 Profile,它是用于 Web 应用开发的 Java EE 平台子集。Web Profile 是 Java EE 的轻量级版本,只包含大多数 Web 应用所需要的技术,而没有 Web 应用通常不会用到的企业级技术。

增强的可扩展性:
与先前版本相比,新版本还包括更多的扩展点和服务供应商接口。这能让 Java 开发人员以标准的方式往 Java EE 6 实现中插入其它技术和框架。

易于开发:
开发人员可以使用注解定义 Web 组件,比如使用 @WebServlet 定义 Servlet、使用 @WebFilter 定义 Servlet 过滤器。新版本标准化了一组用于依赖注入的注解,使得可注入的类在多个框架之间更容易移植。新版本还简化了 Java EE 应用打包的要求。举例来说,你可以在 Web 归档文件(WAR)中直接添加 EJB,不用再像以前那样先把 EJB 打包到 Java 归档文件(JAR)中,再将 JAR 文件打包到企业级归档文件(EAR)中。

Java EE 6 的新特性主要分为四类:展现、依赖注入和数据验证、组件模型和服务、持久化。

展现:
Java EE 6 相当一部分的增强都在展现(Web)层。可扩展性方面的两个关键改进是 Web 片段和共享框架的可插拔,它们由新的 Servlet 3.0( JSR 315 )提供。Servlet 3.0 还支持异步处理和注解。支持异步处理后,Servlet 的线程就不用像以前那样了——收到来自资源的响应之后才能继续处理请求。这能允许聊天室之类的应用有长客户端连接。

Java EE 6 Web 层的另一个技术是 JSF 技术的最新版本——JSF 2.0( JSR 314 )。JSF 2.0 借助 Facelet、模板化和复合组件简化了页面和组件的编写。它还提供内置的 Ajax 和注解支持。新版本还包括 JSP 2.2 规范。

依赖注入和数据验证:
Java EE 平台的上下文和依赖注入(CDI,JSR 299 规范)为 Java EE 组件提供了一组服务。这些服务允许 EJB 和 JSF 等 Java EE 组件能被注入,也允许通过触发和观察事件进行交互。CDI 还统一、简化了 EJB 和 JSF 的编程模型,使得 EJB 能在 JSF 应用中替代 JSF Managed Bean。

新的 Bean 验证规范( JSR 303 )让验证更为简单,并减少了重复和错误。它提供了一个标准的验证框架,同一组验证规则在框架中可由应用的所有层(Web 层、控制层、服务层和领域层)共享。

组件模型和服务:
在服务器端,Java EE 6 发布了 EJB 3.1( JSR 318 )和 Java API for RESTful Web Services 规范(JAX-RS, JSR 311 )。EJB 3.1 中的改进有:

  • 无接口视图:简化了 EJB 的编写,只需要一个 Bean,无需再编写单独的业务接口。
  • 单例:使用 @Singleton 注解的单例设计能让你在一个 EJB 的多个实例之间、或应用的多个 EJB 之间轻松共享状态。
  • 异步会话 Bean 调用:利用 @Asynchronous 注解,会话 Bean 的方法就可以被异步调用了。
  • 简化的打包:EJB 以前必须打包在 JAR 文件里,新的打包机制打破了这一限制。EJB 现在能直接放到 WAR 文件中。
  • EJB 精简版:该模型是 EJB 3.1 的子集,Java EE 功能子集可包含它。

JAX-RS 规范可用来开发符合 REST 风格软件架构的轻量级 Web Service。它提供了在 Java 中构建 RESTful Web Service 的 API、注解及相关的类和接口。

持久化:
持久化模块包括 JPA 2.0( JSR 317 ),JPA 2.0 对 JPQL 有几点增强,还提供了新的 Criteria API,可动态创建基于对象的查询。JPA 2.0 还有一个元模型 API,能让开发人员动态访问数据库的元模型信息。JPA 2.0 添加了 @ElementCollection、@CollectionTable 两个注解,以支持新的集合映射:其中 @ElementCollection 用来指定集合中的基本对象或嵌套对象,这些对象存储在一个单独的表中,这个表叫 collection table;@CollectionTable 则用来指定 collection table 的有关细节,比如列信息。

在 Java 网站上可以下载最新的Java EE 6 SDK 。要想了解 InfoQ 对 Java EE 6 发布和新特性的更多报道,请移步至此

查看英文原文: Java EE 6 Features: Dependency Injection, Bean Validation and EJB Enhancements

2009 年 12 月 13 日 21:182663
用户头像

发布了 151 篇内容, 共 53.8 次阅读, 收获喜欢 16 次。

关注

评论

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

天下武功,唯”拆“不破之架构篇一 | 技术人应知的创新思维模型 (7)

Alan

架构 个人成长 思维 技术人应知的创新思维模型 28天写作

从“断臂求生”到一骑绝尘,航运巨头马士基如何利用区块链技术力挽狂澜?

CECBC区块链专委会

航运

AWS 发布 180 项新服务与功能

亚马逊云科技 (Amazon Web Services)

云计算 AWS

架构师训练营 第九周课程

文江

JVM 垃圾回收原理简述

Mars

封装 axios 取消重复请求

360技术

Web 开发

架构师训练营第 1 期 - 第 13 周课后练习

Anyou Liu

极客大学架构师训练营

Java架构速成笔记:五大专题,1345页考点 看完直接收获腾讯、京东、滴滴offer

比伯

Java 编程 架构 面试 计算机

极客大学 - 架构师训练营 第十三周作业

9527

世界之书:《大国政治的悲剧》与美国独行

lidaobing

大国政治的悲剧 28天写作

架构师训练营 1 期第 13 周:数据应用(二)- 作业

piercebn

极客大学架构师训练营

架构师训练营 1 期第 13 周:数据应用(二)- 总结

piercebn

极客大学架构师训练营

科普:区块链中的公链和私链的有什么区别?

CECBC区块链专委会

公有链 私有链

百分点助力常州科教城上线两大平台 打造国际智慧创新城

百分点认知智能实验室

AI 智慧城市

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

万有引力

Week9总结

lggl

作业

架构师第十三周作业

_

极客大学架构师训练营 第十三周

架构师第十三周总结

_

总结 架构师第十三周

第十三周作业 (作业一)

Geek_83908e

架构师一期

第十三周 数据应用 (二)

9527

第十三周作业 (作业二)

Geek_83908e

架构师一期

NO.001-简说Java并发编程史

葛一凡

性能优化总结(三)

Mars

万字庖解区块链跨链技术

CECBC区块链专委会

区块链

系统性能优化案例(秒杀系统)

积极&丧

联邦学习与安全多方计算

DataFunTalk

学习 AI

《Python中的竞争性编程:128种提高编码技能的算法》PDF

计算机与AI

Python 算法

Week9作业

lggl

架构师训练营第四周”系统架构“总结

随秋

极客大学架构师训练营

生产环境全链路压测建设历程14:核心链路的改造

数列科技杨德华

全链路压测 七日更

架构师训练营第四周”系统架构“作业

随秋

极客大学架构师训练营

移动应用开发的下一站

移动应用开发的下一站

Jave EE 6特性:依赖注入、Bean验证和EJB增强-InfoQ