InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

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

领域
语言 & 开发,
架构 & 设计,
运维 & 基础架构,
企业架构,
过程 & 实践
主题
声明 ,
Java
标签
EJB ,
JSF ,
Java EE

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

译者 王丽娟 王丽娟,04年大学毕业后持续从事Java EE中间件产品的开发,现在主要关注Java技术及中间件产品在云计算环境中的发展趋势和应用。

ejb3.1 发表人 sun jun 发表于
欢迎参加GlassFish v3 全球发布 北京技术交流活动 发表人 Jimmy Ben 发表于
千呼万唤屎出来 发表人 lee steeven 发表于
  1. 返回顶部

    ejb3.1

    发表人 sun jun

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

  2. 返回顶部

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

    发表人 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 活动结束

  3. 返回顶部

    千呼万唤屎出来

    发表人 lee steeven

    不错, 就是出来太慢了.

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。