BT

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

作者 Srini Penchikala ,译者 王丽娟 发布于 2009年12月13日 |

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 讨论

深度内容

提供反馈
错误报告
商务合作
内容合作
InfoQ.com及所有内容,版权所有 © 2006-2013 C4Media Inc. InfoQ.com 服务器由 Contegix提供, 我们最信赖的ISP合作伙伴。
隐私政策
BT