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

EJB 3.1 会给我们带来什么

阅读更多

虽然之前关于 EJB 3.1 的文章已经有不少了,但我还是忍不住要在写点关于这方面的东西。

 

EJB 3.1 提供了哪些新的特性,多数人已经很清楚了。这些特性总结一下,多数都是为了进一步简化编程模型而服务。有些是提供了新功能(easy packing、EJB Lite、embeddable EJB Container),另一些是使已有的功能能够更容易地被实现(可选的 session bean 接口、Timer、异步 session bean)


再简单回顾一下这些新特性(不完全)

  • 可选的本地接口
    这个就不用多说了
  • Timer Service
    用法很简单,就是使用 Annotation 进行配置(自从 Java SE 5 开始,Annotation 真是风靡整个 Java 世界呀)来实现任务的定时调用。当然,功能不会很强大,但对一般的应用也够用了。

  • 异步 Session Bean
    异步的任务在企业应用中很常用。过去 Java EE 是通过消息驱动 Bean 实现的(据说比较麻烦,但我没做过,也不知道到底有多麻烦了),现在可以通过在 Session Beans 的方法上添加 @Asynchronous 来实现。这样在调用到加了异步注释的方法是并不会阻塞在那里。
          异步的 Session Beans 方法可以返回空值或者实现了 Future 接口的类。后者可以用来检查异步调用的状态。

  • EJB Lite
    虽然 EJB 3.0 已经将编程模型变得非常简单了,但是对于大多数 Web 项目而言,EJB 3.0 提供的很多特性还是不会用到的。既然如此,那就出一个 EJB 的简化版本,将这些大多数项目很少会用到的特性去掉。于是,EJB 3.1 加入了 EJB Lite 这个新特性。
          其实,EJB Lite 反映了 Java EE 6 中一个比较大的变化。Java EE 6 将提供一种规模介于像 Tomcat 这种只支持 Servlet 与 JSP 的实现(Profile A)和像 JBoss 这种完全实现 Java EE 的实现(Full Platform)之间的实现(Profile B)。Profile B 除了会支持 Servlet 和 JSP 以外,还会支持 JTA 1.1、JPA 2.0、EJB Lite、JSF 2.0* 和 Web Beans 1.0*,后两个加星号是因为这两个规范是否要加入 Profile B 尚有争议。无论如何将在 Java EE 6 中加入的 Profile B 将会使非常受欢迎的一个变化。关于 Java EE 6 的 Profiles,请详见这篇文章“链接 ”。
          再回到 EJB Lite 身上,需要注意的是 EJB Lite 非常可能不会支持 Asychronous Session Bean 这个特性,也不会支持 Timer 特性。这两个特性都挺不错的。当然了,如果支持的特性太多了,也就不能被称为 EJB Lite 了。不过,现在还只是草案阶段,一切还没有最终确定。

  • Embeddable EJB Container
    嵌入式的 Java EE 容器也有不少,现在终于要作为一个标准了。作用主要有两个:1. 简化 EJB 应用的单元测试;2. 为像 Tomcat 这样的 Servlet 容器提供支持 EJB 的能力。最初嵌入式的容器可能只需支持 EJB Lite,以后可能会支持全部的 EJB 特性。
     
  • Easy Packing
    不用再将 EJB 打成 JAR 包了,直接放在 WEB-INF/classes 就行了。这对 Java EE 程序员来说再熟悉不过了。结合上两个新特性,Tomcat + 支持 EJB Lite 的嵌入式容器 + Easy Packing,一个 Java WEB 项目就可以轻轻松松使用 EJB 了。


这些特性会带来怎样的变化

 

      以往一个使用了 EJB 的 Java EE 项目都需要分别将项目打包成若干 WAR 和 EJB JAR 包,并组合为一个 EAR 包。从测试、开发和部署讲,这种方式都要比只使用 Servlet 和 JSP 的项目复杂了很多。这也是 Spring 出现之后能够迅速流行的一个重要原因。但是由于 Spring 先天过于简单的 Bean 声明周期管理和 Bean 单一的 Context(只有 Singleton 和 Prototype 两种,虽然在 2.0 版本后提供了 Request 和 Session 两种新的 Context,但这远远不够,看看 Seam 和即将发布的 Web Beans 1.0 中的 Context 吧),并且缺乏 Java EE 容器的支持,所以在企业应用开发里面 Spring 显得有点发力(所以 SpringSource 也推出了自己的服务器,并且从 3.0 开始,Spring 要开始支持 Java EE 的规范了,当然怎么个支持法还不得而知)。

 

      Java EE 的多数技术都很好,但过去由于他们用起来很麻烦,所以很多人对其避而远之。EJB 3.1 的主要的一个趋势就是简化编程模型(Java EE 6 也是如此)。可以想像,今后很可能出现名为 JBoss Lite 之类的支持 Java EE 6 中 Profile B 的平台(JBoss Lite 这个名字当然是我 YY 的)。在这个平台上开发和部署的难易程度应该和在 Tomcat 无太大差别。在这个平台上,你可以以过去在 Tomcat 上开发应用的方式开发 使用了 EJB(Lite)、JSP、Web Beans 等技术的 Web 项目,然后以 WAR 包的形式部署。这种方式太诱人了。希望我的 YY 能够成真(非常有可能)。

 

      之前有简单应用 JBoss Seam 的经历,Seam 提供了很多之前使用 Spring 时不曾敢想像的特性(技术的发展就应该如此)。同时,Seam 中的很多思想也很不错。但是由于 Seam 是基于 JSF 和 EJB 的,所以对于很多 Seam 的应用,你都不得不将其部署为 EAR 项目,这对中小的 Java EE 企业应用是很痛苦的。人都是懒得嘛,呵呵。(虽然 Seam 也可以不使用 EJB,但是这是否会失去很多诱人的特性呢?我觉得是肯定的,但我没有细究过这个问题,所以只好用不十分肯定的语气回答了)。在 Java EE 6 推出之后,Seam 项目将非常可能像使用 Spring 的项目一样简单,同时提供更多更企业级的特性。打个 WAR 包足以。

 

      同时,由于从 Spring 3.0 开始逐渐支持 Java EE 6(也是随着 Java EE 在不断增强功能的情况下也在不多地降低门槛,使得讲究简单的 Spring 也开始支持 Java EE 了),这使得 Spring 带有了越来越的企业应用开发框架的特质(虽然 Spring 本身有些先天不足,但后天很是努力呀)。

 

      总之,Java EE 和 Seam 会更加的简单(当然,Seam 本身就很容易入门,也很易用);Spring 这样的“非正统”的 Java EE 框架会更加的功能强大。看来 Java EE 领域的09年会好戏不断呀(虽然有金融危机)。

 

 

 

最后,来点参考文章

6
0
分享到:
评论
1 楼 robbin 2008-12-05  
这篇文章可真棒!

相关推荐

    _EJB3.1javaFX搭建工程.doc

    【EJB3.1简介】 EJB(Enterprise Java Beans)是Java平台上的一个核心标准,主要用于构建企业级分布式应用程序。EJB3.1是EJB规范的一个版本,它简化了之前版本的复杂性,提高了开发效率。EJB3.1引入了更多的注解驱动...

    在Tomcat5.5下配置EJB

    **在Tomcat 5.5下配置EJB** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是一种...同时,EJB 3.0之后的版本(如EJB 3.1和EJB 3.2)引入了更多改进,如更强大的注解和简化API,为开发带来了更大的便利。

    EJB系统开发实战录之一(新)

    EJB规范经历了多个版本的迭代,从早期的EJB 1.0到现代的EJB 3.x,每个版本都带来了显著的改进: - **EJB 1.0/2.0**:语法复杂,依赖XML配置,注重面向接口编程。 - **EJB 3.0**:引入注解,简化了API,降低了学习...

    EJB面试题汇总

    客户端通过远程接口调用EJB时,实际上调用的是本地接口,然后由本地接口委托给EJB实例执行具体的业务逻辑。 #### 二、EJB的激活机制 EJB的激活机制主要用于提高系统的性能和资源利用率,尤其是在处理大量无状态...

    EJB 3 开发指南2008版

    回顾EJB 3 的发展历程及其对企业级应用带来的变革,并对未来的发展趋势进行预测,比如EJB 3.1 或更高版本可能带来的新特性。 --- **结语**:本书旨在为开发者和架构师提供一份全面实用的EJB 3 开发指南,不仅覆盖...

    EJB 3.0 入门图文教程

    **EJB 3.0 入门图文教程** 企业级JavaBean(Enterprise JavaBeans,简称EJB)是Java平台上的核心组件模型,用于构建可扩展、安全和...通过实际操作和练习,你可以更好地理解和运用EJB 3.0,为你的项目开发带来便利。

    JavaEE6.ppt

    它通过引入革新的开源框架,如Servlet 3.0、EJB 3.1、JPA 2.0、JSF 2.0和Dependency Injection,显著提升了开发效率和管理能力。此外,Java EE 6还启动了精简过时技术的进程,以保持平台的现代性和活力。 **灵活性*...

    spring2.5 struts2.0 hibernate3.1

    Hibernate 3.1 版本带来了对JPA(Java Persistence API)的初步支持,增强了性能,包括更高效的缓存机制和对HQL(Hibernate Query Language)的优化。此外,3.1版本还提供了更好的类型安全性和对EJB 3.0的兼容性,...

    基于EJB3.0的分布式网上购物系统毕业设计.doc

    本课题旨在利用EJB 3.0技术设计并实现一个分布式网上购物系统,以解决高访问量带来的性能挑战。研究内容包括系统的架构设计、组件开发、数据管理以及事务处理等。此项目不仅有助于提升系统性能,还能提高用户体验,...

    JavaEE_API大全

    在实际开发中,开发者通常会根据项目需求选择合适的技术栈,例如,使用Servlet和JSP构建Web层,EJB处理业务逻辑,JSF构建用户界面。同时,JavaEE还包含其他重要规范,如JPA(Java Persistence API)用于对象关系映射...

    JavaEE6规范中文版(CHM)

    6. **Enterprise JavaBeans 3.1 (EJB 3.1)**:EJB3.1简化了EJB的使用,支持无状态会话bean的本地接口,以及轻量级的Singleton bean,使得EJB更适合于微服务架构。 7. **Web服务**:JavaEE6增强了对WS-*规范的支持,...

    Java EE 6 Overview 新特性

    - **EJB 3.1 Lite**:Java EE 6 中的EJB 3.1 版本进一步简化了企业级组件的开发过程,特别是通过EJB 3.1 Lite 在Web Profile 中的出现,使得开发者能够在不牺牲性能的情况下轻松地集成业务逻辑。 - **Servlet 3.0**...

    javax.annotation-3.1.2.2-sources.jar.zip

    《深入解析Java注解及其应用》 在Java编程领域,注解...在学习和使用javax.annotation-3.1.2.2-sources.jar的过程中,我们可以深入研究源码,进一步挖掘其内在机制,为我们的编程实践带来更多的启示和帮助。

    Java_EE_6规范中文版和英文版

    1. **轻量级框架支持**:Java EE 6引入了JSF 2.0(JavaServer Faces 2.0)、CDI(Contexts and Dependency Injection)和EJB 3.1,这些框架使得开发更加简单和灵活。JSF 2.0提供了更多的组件,更好的事件处理和渲染...

    Java_EE_6.0_API_DOC

    3. **Enterprise JavaBeans(EJB)3.1**:EJB 3.1引入了更多的简化特性,如无状态会话bean的无XML部署、本地接口默认实现、定时器服务等,使得EJB变得更加灵活且易于使用。 4. **Java Persistence API(JPA)2.0**...

    java ee 6 API 09年12月10日

    4. **EJB 3.1**: EJB 3.1进一步降低了EJB的使用门槛,引入了无状态会话bean的简化注解,如`@Singleton`和`@Asynchronous`,使得后台任务处理更为灵活。 5. **JPA 2.0 (Java Persistence API)**:JPA 2.0提供了更多...

    J2EE API 6

    3. **Enterprise JavaBeans 3.1 (EJB 3.1)** EJB 3.1简化了企业组件的使用,增加了轻量级的会话bean,支持无状态和有状态bean的注解配置,以及单例bean模式,使得EJB更易于理解和部署。 4. **JavaServer Faces 2.0...

    JavaEE6规范中文版

    6. **Enterprise JavaBeans (EJB) 3.1**:EJB 3.1 Lite是针对轻量级应用的,降低了EJB的复杂性。新特性包括无状态会话bean的注解驱动,简化了消息驱动bean的使用,以及本地接口的默认实现。 7. **Java Persistence ...

    j2EE6.0 api文档

    5. **Enterprise JavaBeans 3.1 (EJB 3.1)**:EJB 3.1引入了“无状态会话Bean”的轻量级模式,可以运行在无容器环境中,同时支持异步方法调用,增强了服务的可扩展性。 6. **Java API for RESTful Web Services ...

Global site tag (gtag.js) - Google Analytics