带你走进EJB--它都有哪些Bean

 

         通过前面一系列EJB的博客,我们已经对EJB有了一个宏观的了解.为够更好的在企业项目中使用EJB,我们很有必要对EJB的一些基本内容进行深入,这次我们主要进行的主题是Enterprise Java Bean 中都有哪些Bean?

         EJB中主要有以下三种类型的Bean,分别是

  • Session Beans
  • Message-Driven Beans
  • Entities Beans

        

         每种类型的Bean都能够提供特定类型的服务.这三种分类能够帮助我们更好的去理解并组织一个应用程序.例如,Bean的这些类型能够让我们基于分层的架构来开发应用.


         Session Beans Message-Driven Beans(MDBs)用来创建业务逻辑,它们是由EJB容器来管理生命周期.Entities Beans是数据持久化的模型.跟容器一样,Entities Beans是通过Persistence provider(持久性提供者)来进行管理的.

 

           接下来我们通过一张图来总结上面所阐述的内容.同时也是对EJB类型的一个概括.

计算机生成了可选文字:ManagedbytheCOntain6rEJB3士SeSSionbeanMessage一drivenbeanJPAEntityManagedbytheEntityManagerlpersistenceprovider

 

 

        这里需要注意的是Java Persistence API EJB3 的容器是完全分开的.

 

SessionBeans

 

         一个会话Bean实例是客户端调用一个特定业务操作的结果,比如检查客户的访问历史.共有两种类型的Session Beans,有状态的会话Bean和无状态的会话Bean.

         有状态的SessionBean只为一个用户来服务,并且能够自动记录用户的状态同时你也不需要去写额外的代码.一个简单的例子就是你在淘宝购物所用的购物车的过程.

         无状态的SessionBean是不会保存的信息的和状态,无状态的SessionBean是可以重用的,它不会被立刻销毁.一个简单的例子就是你在淘宝购物所用到的查询购物记录的过程.

         Session Beans可以通过JavaRMI来进行本地或者远程调用.无状态的会话Bean还可以发布成Web Service.

 

 

有状态的Beans和无状态的Beans有什么区别呢?

 

        

        这两种Session Bean都可以将系统逻辑放在方法之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此一个使用者会有自己的一个实例。

        Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB  容器并不会寻找特定的 Stateless Session Bean 的实体来执行这个method 换言之,很可能数个使用者在执行某个 Stateless Session Bean methods 时,会是同一个 Bean的实例在执行。


        从内存方面来看,Stateful Session Bean StatelessSession Bean 比较,Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。

 

Message-DrivenBeans

 

         Message-Driven Beans (MDBs)Session Bean一样,都是用来处理业务逻辑.但是MDBs非常不同于Session Beans是客户端不会直接调用MDB的方法.MDB会被发到消息服务的消息所触发,它能够在不同的系统组件之间进行异步消息传输.有很多的消息服务例如:IBMWebSphere MQ, SonicMQ, OracleAdvanced Queueing, and TIBCO.MDB的一个简单例子是在淘宝中你请求查询相关宝贝的物流信息.

 

Entities


        Entities是能够持久化到数据库的那些java对象.EJB3 其中一个新特征就是能够处理持久化,关于什么是持久化可以参考我的博客:Hibernate 之 PersistenceEJB的持久化是通过JPA来进行管理的.它能够自动的将Java对象通过ORM技术持久化.

 

       至此,我们已经对EJB各个组成部分有了深一步的了解,知道在EJB中都有哪些Bean和他们基本的功能.

 

     

 

 

 

 

 

posted @ 2013-07-08 14:35  xinyuyuanm  阅读(409)  评论(0编辑  收藏  举报