BT

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

作者 Srini Penchikala ,译者 王丽娟 发布于 2009年12月14日 | 被首富的“一个亿”刷屏?不如定个小目标,先把握住QCon上海的优惠吧!

Java EE的最新版本提供了几项新特性,包括依赖注入、Bean验证,以及EJBServletsJSFJSP技术方面的增强。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

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

ejb3.1 by sun jun

ejb3.1 , jpa2.0有什么新的特性或改进

欢迎参加GlassFish v3 全球发布 北京技术交流活动 by Jimmy Ben

欢迎参加GlassFish v3 全球发布 北京技术交流活动
组织者: GlassFish China User Group
活动赞助及支持 Sun Microsystem
时间: 12月16日(星期三), 2009 下午 2:00 PM ~ 5:30PM
地点: SUN中国工程研究院 清华大学东门,北京清华科技园创新大厦A座7层 (城铁五道口站下往西至清华东门,西侧清华科技园即是)
主题提交: groups.google.com/group/glassfish_china
活动注册: duanurl.com/aasp
活动计划安排
2:00~~2:30 开放注册
2:30~~2:40 活动欢迎和组织者介绍GlassFish v3 全球发布技术交流活动
2:40~~3:15 主题 1:
3:15~~3:50 主题 2:
3:50~~4:00 茶歇
4:00~~4:35 主题 3
4:35~~5:00 Glassfish 闪电演讲 (5 Mins 5 Talks),自由放飞你的Ideas
5:00~~5:30 自由交流互动
5:30 活动结束

千呼万唤屎出来 by lee steeven

不错, 就是出来太慢了.

允许的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通知我

3 讨论
提供反馈
错误报告
商务合作
内容合作
Marketing
InfoQ.com及所有内容,版权所有 © 2006-2016 C4Media Inc. InfoQ.com 服务器由 Contegix提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司 京ICP备09022563号-7 隐私政策
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.