从Java EE 6最终草案看Java企业级开发的未来

开发 后端
Java EE 6最终草案有3个重要变化,分别是增加了针对Java的依赖注入、上下文与依赖注入CDI以及Bean Validation。关于Java企业级开发的最新发展变化,可以从这个草案中看出些端倪。

最新的Java企业级平台标准Java EE 6一直是Java开发人员关注的重点,51CTO之前曾报道过《Java EE 6遥遥无期 预览版两极分化》的消息。近日,Java 有新的消息传出,Java EE 6专家组最近发布了规范的最终草案。相对于早期版本来说,最终草案有3个重要变化,分别是增加了针对Java的依赖注入、针对Java EE平台的上下文与依赖注入(以后称之为“CDI”)以及Bean Validation,这三个规范都将成为完整平台与Web的必要组件。为了搭配CDI与JSR-330,专家组又提出了另一个最终草案,该草案重用了JSR-330中定义的依赖注入注解,同时增加了针对EJB Session Bean的构造注入和其他微小变化。

除了此前发布的Web Profile和完整的规范文档外,专家组还为Managed Bean增加了一个规范文档。所谓Managed Bean,其实就是被容器当作受管理组件的一些Java类,它在CDI和JavaServer Faces中得到了广泛的应用。此外规范还引入了EJB Lite,这样我们就可以在完整的Java EE容器外使用EJB Session Bean了,这意味着三种概念能独立存在于Java EE平台之上。类似的概念早就存在于那些广泛应用的框架中了,如Spring和Seam等。Managed Bean支持一些基本服务,如资源注入、生命周期回调以及拦截器等等。其他规范可以构建在该定义之上并添加其他服务,比如CDI增加了依赖注入、EJB Session Bean增加了事物、远程等等。Roberto Chinnic在其博客上给出了如下示例:

给定一个JAX-RS资源类,你可以通过添加一个@ManagedBean注解、一个EJB组件注解(@Stateful)或是一个CDI注解(比如@Default)将其转换为Managed Bean。反之亦然,若给定的类来自于Managed Bean或是EJB组件,那么我们可以通过添加一个JAX-RS @Path注解将其转换为JAX-RS资源类。以此类推,Servlet、JAX-WS端点类或是(大多数)Java EE 6中的任何其他组件类型都可以这样。

虽然目前Managed Bean规范的影响还不算大,但它却非常重要,因为这暗示了Sun对于整个Java EE平台走行方向的想法。尽管还需要对规范加以修改以让整个Java EE平台符合其要求,但不难看出Managed Bean和Java EE 5平台所引入的基于注解的编程模型最终可以让开发者从Java EE容器所提供的众多服务和组件中按需选择。同时,简单的Managed Bean模型补充了平台下的扩展点和服务供应者接口,为Java框架和产品开发者提供了一种标准化机制以在平台上进行分层,这也是Java EE 6平台的一个主要目标。

Sun GlassFish V3很可能成为首个提供完整平台支持的应用服务器,现在其预览版已经发布了。JBoss 5.2的下一beta版将提供某些Java EE 6支持,包括JavaServer Faces(JSF)2.0、Java Persistence(JPA)API 2.0、Bean Validation以及新版本的CDI。SpringSource也宣布支持部分新标准。Spring 3.0将支持JSF 2.0、JPA 2、Bean Validation以及JSR-330。未来的Spring 3.x将支持Java EE 6其他的API,包括Servlet 3。

就IDE支持来说,NetBeans 6.8将支持JSF 2.0(包括Facelets)、JPA 2.0以及针对GlassFish V3的增量部署。现在 NetBeans 6.8 M2已经可以下载了。JetBrains也紧紧跟随着Java EE 6的变化,IntelliJ IDEA 9将支持JPA 2.0、EJB 3.1、JSF 2.0、Servlet 3、CDI、Bean Validation以及GlassFish 3。

 

【更多关于Java EE 6的报道】

  1. Java EE 6新特性尝鲜:EJB 3.1重要变化总览
  2. Java EE 6的可扩展性、使用偏好以及修剪
  3. 漫漫征途 Java EE 6离我们还有多远
  4. Java EE 6草案提交 新特性一览
责任编辑:佚名 来源: InfoQ
相关推荐

2009-03-30 09:42:28

OSGiJavaJCP

2016-12-14 14:00:53

2016-10-21 17:17:06

2009-08-25 13:48:01

Java EE架构企业级应用

2020-12-04 09:26:13

SSR 框架企业级

2009-12-11 10:41:03

Ubuntu

2021-03-04 12:57:02

PaaSSaaSIaaS

2013-07-02 13:53:48

App企业级应用

2021-07-05 06:51:44

Java 企业版编程

2010-08-04 15:20:15

Flex企业级开发

2019-05-06 11:12:47

OracleJavaEE甲骨文

2009-12-09 08:49:13

JavaOracle

2015-04-22 09:36:27

JAVA代码生成器

2012-05-15 15:21:29

企业级

2018-12-10 12:08:14

联想

2011-12-06 14:02:27

企业级移动开发

2013-01-23 14:30:43

IT产品

2009-03-02 09:22:39

OSGiJ2EEEclipse

2013-08-01 00:00:00

开发企业级App出路

2012-04-01 11:11:58

MyEclipseJ2EE
点赞
收藏

51CTO技术栈公众号