`
kyo100900
  • 浏览: 639417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【翻译】Java EE 6体系结构的变革(完)

阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

JSF 2.0

 

尽管 Java 在展示层框架上竞争的非常激烈,但 JSF 仍然固守着自己的领地。虽然有很多关于 JSF 的易用性和健壮性的质疑声,但 JSF2.0 就是为正面解决这些问题而提出来的,它的易用,创新以及可扩展的特性包括:

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JSF 正式将 Facelets 作为视图技术。也许你不熟悉 Facelets ,它也是一个与 JSF 结合默契的开源视图技术。因此,与 JSP 不同的是 Facelets 更适合 JSF 的组件模型以及生命周期的概念。当然,也许 Facelets 最强大的特性就是在用 mark-up 来代替 java 代码创建自定义的组件。创建自定义组件的复杂度也许是开发者对 JSF 抱怨最多的地方了。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JSF2.0 通过使用标签为 Java EE 5 提供了基于 annotation 驱动的配置特性(比如说可以使用 @ManagedBean @ManagedProperty )。这也意味着可以一定程度上的减少 faces-config.xml 文件的大小,不过像在 navigation 这些结点的配置在 XML 文件还是不能少。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JSF2.0 为适应 AJAX 而改变了自身的生命周期,只需要局部页面的交由 AJAX 事件处理。这个特性使得 JSF+AJAX 的组合更加自然。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JSF2.0 现在内置了优秀的资源处理器。对 images JavaScript 文件以及 CSS 样式等都表现出众。它可以对通过逻辑名称,资源分组以及版本等方式来更好的引用资源。

 

除上述特性外, JSF2.0 还包括许多其它方便的改变。比如说支持事件,支持 RAILS_ENV 的开发风格 ( 就是 ROR) ,支持对标准组件集进行扩展。你可以通过下面的链接来看看 JSF2.0 的公开草案: http://jcp.org/en/jsr/detail?id=314

 

 

EJB 3.1

 

EJB Java EE 5 就已经经历过了非常大的改动。也许看似不可能,但实际上 EJB3.0 还是在社区中广泛得到认可,并且采纳它的人也在不断增长。而这一切也许是因为我们过度的认为需要怎么怎么简化 Java EE 5 才取得这样的成绩。比如说,对 JBoss Seam 的兴趣和 GlassFish 的热情都是重要的关键因素。 EJB3.1 的目标就是在增加业务组件时,继续让 EJB 变得尽可能简单。下面是对 EJB3.1 特性的高度概括:

 

<!-- [if !supportLists]-->l         <!-- [endif]-->原本需要甚至实现 Session Beans 的业务接口变得可选了,不再强迫要求实现。在使用 Session Beans+JSF+WebBeans 的场景下尤其有用。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->EJB3.1 增加了 Singleton Beans 的概念。因为人们更倾向于管理共享的应用程序状态,需要保证是完全线程安全的模型。此外, EJB3.1 新增的声明式的并发控制也更加灵活。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->EJB3.1 一个可圈可点的的强大特性就是支持 cron 风格的 scheduling 。除目前基于 timer API 的调度计时器外,声明式和编程式的 cron 风格的 scheduling API 也加入了进来。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->另一个强大的特性就是可以通过使用 @Asynchronous 标注来对 Session Bean 的方法进行异步调用。你甚至还通过它来控制异步 EJB 方法从而返回一个 java.util.concurrent.Future 对象

 

<!-- [if !supportLists]-->l         <!-- [endif]-->EJB3.1 Lite 概念的逐渐引入形成了一个 EJB API 的子集,并在 Web Profile 中得到应用。只不过 EJB Lite 包含了像事务处理和安全这样的特性,而那些消息机制,远程调用以及 scheduling 等非必须的自然没有必要加入其中。

 

除上述列表所述特性外, EJB3.1 的特性还包括:括直接将 EJB 打包成 war 文件,可运行在 embedded 的容器中便于 Java SE 环境进行 JUnit 测试,使用统一的标准化全局 JNDI 命名方式。 EJB3.1 的公开草案可从以下链接获得: http://jcp.org/en/jsr/detail?id=318

 

 

 

JPA 2.0

 

Java EE 6 的时候, JPA 已经彻底从 EJB 中分离,形成自己的体系 (EJB3.0 已经将 JPA 分离出去了 ) JPA 的成功是毫无疑问的。它广泛得到社区的采纳和一流供应商的支持。本来我们担心 EJB2.* Enity Beans 垮台可能无法让 Java EE 再次引领持久层的标准,一个重要成功的因素就是 Gaving King JBoss 社区毫不含糊的支持。 JPA2.0 的目标就是要在这次成功的基础上再接再厉,填补更多的空白,再创多的创新:

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JPA2.0 加入了大量必须的 ORM 映射增强特性,包括:支持通过使用 @ElementCollection 标注来增强 collections, maps lists( 这里不是指实体之间的关联关系 ) 集合,支持 map 的单向 one-to-many 关联 (JPA1.0 只允许双向 one-to-many 关联 )

 

<!-- [if !supportLists]-->l         <!-- [endif]-->EntityManager Query API 都得到改进。比如说,现在可以从结果集中直接取得第一条记录 (JPA1.0 只允许从一个 unique 结果集中反回单个记录 ) ,指定 query 结果集的最大值,访问各个供应商的底层实体对象 manager query ,最后就是加入悲观锁 (JPA1.0 只支持乐观锁 )

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JPQL 也提供类似于 SQL CASE NULLIF COALESCE 等函数

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JPA2.0 应广大开发者要求增加了 Criteria API 。要是你对 Hibernate TopLink Criteria API 不熟悉的话,可以将它想像成一个以 Java 为中心的面向对象,线程安全并可以与 JPQL 划上等号的一组 API 。这组 API 适合于编写复杂的动态查询语句,还可避免解析 JPQL 语句时,所抛出的运行期异常。

 

更完整的 JAP2.0 特性还包括:标准的二级缓存,标准的 JDBC properties ,指定超时时间等等。你可以随时通过下面的 JSR 站点看看关于 JPA2.0 公开草案的更多细节: http://jcp.org/en/jsr/detail?id=317

 

 

Servlet 3.0

 

如果说 Servlet API 已经是相当成熟的话,那么也许你也许会惊讶怎么它也要来一次大修订?事实上, Servlet3.0 的改变又带来了一系列激动人心的特性,相信它们又会被社区广泛接受。共同来看看这些改变吧:

 

<!-- [if !supportLists]-->l         <!-- [endif]-->Servlet3.0 Java EE 6 的模型中引入了像 @WebServlet @ServletFilter @WebServletContextListener 等标注。它们能很大程序上减少 web.xml 配置。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->Servlet3.0 当然也引入 web.xml 分块思想。这就意味着容器除了可以在 WEB-INF/lib 中查找 web.xml ,还可以在任何 web 应用程序的 classpath (比如说 WEB-INF/classes WEB-INF/lib 中的 jar 包)中查找 web.xml 配置文件片断。这对于像 JSF Struts 这些需要在 web.xml 通过配置才能启动的 web 应用程序框架尤其有用。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->另一个非常酷的特性就是可通过使用 ServletContext 来编程式的增加 Servlets Filters 以及 Listeners 。和刚才提到的 web.xml 片断一样,该特性也主要是为满足框架开发人员需要动态的在运行期决定配置而新增的。

 

除了上述改变外, Servlet 3.0 还引入了支持异步处理等诸多特性。 Servlet 3.0 的公开草案可以通过下面的链接获得: http://jcp.org/en/jsr/detail?id=315

 

 

JAX-RS 1.1

 

REST 的日益兴起为 web services 开发提供了新的方式。这次包含的 JAX-RS 与先前的 JAX-WS 地位相当,表示 Java EE 也认可 REST 是一种趋势。与 JAX-WS 的出发点一致, JAX-RS 也远离了 SOAP 协议的底层细节。 JAX-RS 设计的目标就是想,通过使用 POJO 编程模型和基于标注的配置,来减少 REST 开发周期。下面是对 JAX-RS 的高度概括:

 

<!-- [if !supportLists]-->l         <!-- [endif]-->@Path 标注用来决定一个 JAX-RS 的资源 URL 可以被合法访问。可用于 POJO

 

<!-- [if !supportLists]-->l         <!-- [endif]--> @GET @POST @PUT @DELETE 这些标注可用来指定相应的 HTTP 方法,来对资源进行访问。

 

<!-- [if !supportLists]-->l         <!-- [endif]--> URL query 参数, cookies 的值以及 HTTP header 的值都可以通过 @QueryParam, @PathParam @CookieParam @HeaderParam 等标注将其与对应的变量映射在一起。

 

<!-- [if !supportLists]-->l         <!-- [endif]-->JAX-RS 可以和 Servlets WebBeans EJB 集成。

 

JAX-RS 已有的许多强大的特性使得 REST 开发很轻松,这与当初 JAX-WS 开发 SOAP 而无需知道底层细节惊人的相似。 JAX-RS 的公开草案可从下面的链接下载: http://jcp.org/en/jsr/detail?id=311

 

 

你的帮助是必要的

 

也许你能想像专家组正在努力进化 JavaEE ,使之成为一个大家乐意使用的强大的开发平台。 JavaEE7 除了 API 的革新外, JSR 316 专家组现在也变得是稳重而又开阔。尽管如此,我们能做的只有这么多了。我们需要你的反馈,告诉我们这次有没有让你们失望或者我们还应该摸索其它道路。你可以直接将你的反馈通过 jsr-316-comments@jcp.org 发给专家组。如果方便的话,也给我抄送一份 reza@rahmannet.net

 

 

期待你的来信,同时也祝我们好运。

 

 

相关链接

 

<!-- [if !supportLists]-->1.         <!-- [endif]-->Java EE 6 Platform Public Review, http://weblogs.java.net/blog/robc/archive/2009/01/java_ee_6_platf_1.html .

<!-- [if !supportLists]-->2.         <!-- [endif]-->Profiles in the Java EE 6 Platform, http://weblogs.java.net/blog/robc/archive/2008/02/profiles_in_the_1.html .

<!-- [if !supportLists]-->3.         <!-- [endif]-->Web Beans Sneak Peek Part I: Introducing Web Beans, http://in.relation.to/Bloggers/WebBeansSneakPeekPartIIntroducingWebBeans .

<!-- [if !supportLists]-->4.         <!-- [endif]-->Web Beans Sneak Peek Part II: Injection, binding annotations and component types, http://in.relation.to/Bloggers/WebBeansSneakPeekPartIIInjectionBindingAnnotationsAndComponentTypes .

<!-- [if !supportLists]-->5.         <!-- [endif]-->Web Beans Sneak Peek Part III: Declaring components using XML, http://in.relation.to/Bloggers/WebBeansSneakPeekPartIIIDeclaringComponentsUsingXML .

<!-- [if !supportLists]-->6.         <!-- [endif]-->Web Beans Sneak Peek Part IV: Scopes, contexts and resolver methods, http://in.relation.to/Bloggers/WebBeansSneakPeekPartIVScopesContextsAndResolverMethods .

<!-- [if !supportLists]-->7.         <!-- [endif]-->JSF 2.0 New Feature Preview Series (Part 1): ProjectStage, http://blogs.sun.com/rlubke/entry/jsf_2_0_new_feature2 .

<!-- [if !supportLists]-->8.         <!-- [endif]-->JSF 2.0 New Feature Preview Series (Part 2.1): Resources, http://blogs.sun.com/rlubke/entry/jsf_2_0_new_feature5 .

<!-- [if !supportLists]-->9.         <!-- [endif]-->JSF 2.0 New Feature Preview Series (Part 2.2): Resources, http://blogs.sun.com/rlubke/entry/jsf_2_0_new_feature .

<!-- [if !supportLists]-->10.     <!-- [endif]-->JSF 2.0 New Feature Preview Series (Part 2.3): Resources, http://blogs.sun.com/rlubke/entry/jsf_2_0_new_feature3 .

<!-- [if !supportLists]-->11.     <!-- [endif]-->JSF 2.0 New Feature Preview Series (Part 3): Publish/Subscribe Event System, http://blogs.sun.com/rlubke/entry/jsf_2_0_new_feature1 .

<!-- [if !supportLists]-->12.     <!-- [endif]-->JSF 2.0 New Feature Preview Series (Part 4): Resource Re-location, http://blogs.sun.com/rlubke/entry/jsf_2_0_new_feature4 .

<!-- [if !supportLists]-->13.     <!-- [endif]-->New Features in EJB 3.1, http://www.theserverside.com/tt/articles/article.tss?l=NewFeaturesinEJB3-1 .

<!-- [if !supportLists]-->14.     <!-- [endif]-->New Features in EJB 3.1 - Part 2, http://www.theserverside.com/tt/articles/article.tss?l=NewFeaturesEJB31 .

<!-- [if !supportLists]-->15.     <!-- [endif]-->New Features in EJB 3.1 - Part 3, http://www.theserverside.com/tt/articles/article.tss?l=NewFeaturesEJB31-3 .

<!-- [if !supportLists]-->16.     <!-- [endif]-->New Features in EJB 3.1 – Part 4, http://www.theserverside.com/tt/articles/article.tss?l=NewFeaturesinEJB3-Part4 .

<!-- [if !supportLists]-->17.     <!-- [endif]-->New Features in EJB 3.1 – Part 5, http://www.theserverside.com/tt/articles/article.tss?l=NewFeaturesinEJB31-Part5 .

<!-- [if !supportLists]-->18.     <!-- [endif]-->An Overview of Servlet 3.0, http://java.dzone.com/articles/an-overview-servlet-30 .

 

 

分享到:
评论
13 楼 ray_linn 2010-11-02  
没啥新东西。。。sun真的是老牛拉破车啊....

EJB 3,在hibenrate烂大街的时候才姗姗来迟。。。
12 楼 aidiyuxin 2009-12-26  
超级好,非常赞,感谢楼主共享

11 楼 cynan168 2009-09-06  
只接触了其中一小部分。
写得不错,呵。。。
10 楼 lemonweirui 2009-04-13  
总的老说这些特性还是很值得期待的。。EJB3.1会是什么样子呢
9 楼 taxuewuhen 2009-03-04  
无语了呀,一切来的太快,也走的太快。。。。。。 
8 楼 weidewei 2009-02-11  
   
7 楼 jordanyangwei 2009-02-10  
忽然感觉sun官方的东西,还是很好用的。但就是维护起来特别麻烦呵呵,有一点臃肿的感觉 
6 楼 rmn190 2009-02-10  
又一次觉得自己理解掌握的东西太少太少了.

谢谢共享!!
5 楼 witcheryne 2009-02-10  
收获不小!
4 楼 FGhost 2009-02-09  
觉得 落伍了
3 楼 jltest 2009-02-09  
    有爱!!!!
2 楼 wetouns 2009-02-09  
支持EE7的发布
1 楼 Fly_m 2009-02-09  
看了这么多东西,感觉自己又一次的渺小了.还是要多多地学习才行,不是简单地跟着别人的脚步走,还是多理解一下背后的东西才行.
谢谢翻译哈.

相关推荐

    Java EE知识体系结构

    Java EE知识体系结构,用图解的形式详细讲述了Java EE整体的知识架构。

    Java EE 6 tutorial

    Java EE 6(Java Platform, Enterprise Edition 6)是Java技术在企业级开发中的一个里程碑,它为构建可扩展、高性能、分布式的企业级应用程序提供了全面的框架和规范。本教程由Sun Microsystems(后被Oracle收购)...

    The Java EE 6 Tutorial

    《Java EE 6 教程》是Oracle公司于2010年发布的一部详尽指导书籍,旨在帮助开发者深入理解和掌握Java Platform, Enterprise Edition(Java EE)平台的应用开发技术。Java EE 6作为企业级应用开发的标准框架,提供了...

    JAVA EE体系结构图

    基于MVC模式的java体系结构图,视图包括html,css,div,ajaxflash,javascript,xml,jsf,tag,控制器包括JSP,SERVLET。

    java ee 6 with glassfish 3

    Java EE 6(Java Platform, Enterprise Edition)是Java开发企业级应用的标准框架,它提供了丰富的API和服务,用于构建分布式、多层的企业系统。GlassFish 3是Oracle公司推出的开源应用服务器,是Java EE 6规范的...

    JAVA EE 6 api

    这是官方的英文版的JAVA EE 6的API,带索引功能的。

    Java EE 6 规范手册中英文 chm

    Java EE(Enterprise Edition)6是Java平台上用于构建企业级分布式应用程序的标准框架。它提供了一系列的API和服务,使得开发者能够创建高效、可扩展且模块化的Web应用程序。本规范手册包含了Java EE 6的所有核心...

    Java EE期末考试试题

    Java EE,全称为Java Platform, Enterprise Edition,是Java平台下的企业版,主要用于构建分布式、多层的企业级应用程序。它提供了一系列的API和服务,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java ...

    JAVA EE 6 jar包集合

    Java EE 6,全称Java Platform, Enterprise Edition 6,是Java平台上用于构建企业级Web应用的标准框架。这个集合包含了开发Java EE 6应用程序所需的各种jar包,方便开发者直接使用,无需逐一寻找和下载。Java EE 6的...

    Java EE 7 Developer Handbook.pdf

    《Java EE 7 Developer Handbook》在结构上可能包含了以下知识点,因为这些通常是Java EE开发者需要掌握的核心内容: 1. Java EE 7核心概念:介绍Java EE 7的基础架构和核心组件,包括其各个组成部分(如Servlets, ...

    Beginning Java EE 6 with GlassFish 3, 2nd Edition

    ### 关于《Beginning Java EE 6 with GlassFish 3, 2nd Edition》的知识点解析 #### 一、Java EE 6 平台概述 **Java Enterprise Edition (Java EE)** 是Oracle公司(前身为Sun Microsystems)开发的一个企业级Java...

    《Java EE 6基本概念》文字版[PDF]

    在Java EE 6的教程:基本概念,四版,是一个任务导向,例如驱动的指南为Java平台企业版6(Java EE 6中)开发企业应用程序。由甲骨文的Java EE 6日团队成员的书面文件,这本书为我们提供了新的平台的深刻理解和中级...

    java ee基础使用教程

    Java EE(Java Platform, Enterprise Edition)是Java平台上用于构建企业级Web应用的框架集合,它提供了丰富的服务和组件,使得开发者能够快速开发出分布式、多层架构的应用程序。本教程由知名讲师郑阿奇编著,旨在...

    java-EE-API.zip_Java ee api_java ee 6 api

    这个压缩包"java-EE-API.zip"包含了Java EE 6的API规范文档,这对于开发者理解和使用该版本的API至关重要。 首先,Java EE 6 API的核心目标是提供一组标准接口和服务,让开发者可以构建可扩展、健壮且安全的Web应用...

    Java EE 6 DOC API (html版,英文完整)

    Java EE 6(Java Platform, Enterprise Edition 6)是Java平台的一个重要版本,专注于企业级应用的开发。这个API文档提供了全面的技术规范和接口参考,是开发者理解和使用Java EE 6框架的重要参考资料。以下是该文档...

    Java EE架构师认证指南

    Java EE 架构师需要了解什么是体系结构、架构是角色、服务级别需求等概念。体系结构是指一个企业或组织中的软件架构,它描述了软件系统的结构、组件、关系和交互方式。 Java EE 概述 Java EE 是一个基于 Java 的...

    myeclipse中java EE 6 的jar包全

    Java EE 6,全称Java Platform, Enterprise Edition 6,是Java平台上用于构建企业级应用程序的一个版本。这个版本引入了许多新特性和改进,旨在简化开发流程、提高可维护性,并加强了对Web服务和轻量级框架的支持。...

    java ee 5 及java ee 6

    Java EE 5 和 Java EE 6 是两个重要的版本,分别于2006年和2009年发布,它们在Java EE发展历程中起到了关键的推动作用。 Java EE 5 的主要改进和特性包括: 1. **简化编程模型**:Java EE 5 引入了注解...

Global site tag (gtag.js) - Google Analytics