什么是EJB

【前言】
       学习一个知识之前我们首先要知道他有什么,然后再去深入了解他里面的东西,这篇文章主要是带大家了解一下什么是EJB。        1.
什么是EJB
       EJB是什么,规范?容器?EJB包含这些内容,但是EJB不仅仅是这些。EJB(Enterprise Java Bean)又称为企业bean,是生成业务应用的主要分布式组价模型,是javaEE体系的核心部分。   EJB规范的目的在于为企业及应用开发人员实现后台业务提供一个标准方式,从而解决一些此前总是在作业过程中总是重复发生的问题。EJB以一个标准方式自动处理了诸如数据持久化,事务集成,安全对策等不同应用的共有问题,使得软件开发人员可以以专注于程序的特定需求而不再饱受那些非业务元素的困扰。
EJB包含哪些内容
       1、数据持久化 2、事务处理 3、并发控制 4、基于JMS的事件驱动 5、 基于JNDI的名字和空间管理 6、基于JCE和JAAS的安全管理 7、 应用服务器端的软件组件部署 9、将业务方法暴露为Web服务
EJB的种类
        1、sessionBean:用来实现业务逻辑,分为有状态和无状态的。
  无状态会话Bean是一类不包含状态信息的分布式对象,允许来自数个客户端的并发访问。实例变量的内容在前后数次呼出中不被保留(确切地说是不保证保留)。由于不必控制与用户间的对话信息而减少了开销,无状态会话Bean不像有状态会话Bean那样具有资源集约性。举例来说,一个发送邮件的EJB就可被设计为一个无状态会话Bean。在整个会话期,用户只向服务器提交一个动作:发送指定邮件到指定地址。(称为开关行为)
  有状态会话Bean是包含状态的分布式对象,即是说,贯穿整个会话它们都要保有客户端信息。举例而言,在一个网上商店进行实施结账很可能就需要一个有状态会话Bean,因为结账是一个多步动作,服务器端必须可以随时了解到用户已经进行到了哪一步。此外,尽管有状态会话Bean的状态信息可被保持,但始终只能同是由一个用户来访问之。

       2、EntityBean:含有持久化状态的分布式对象,在EJB3.0中,实体bean被单独分了出来,形成新的规范JPA。   这个持久化状态的管理既可以交给Bean自身(Bean-Managed Persistence,BMP),也可以托付于外部机制(Container-Managed Persistence,CMP)。
       3、消息驱动Bean:支持异步行为的分布式对象 它们并不对请求进行当即响应。比方说,某网站用户点击“请通知我更新信息”按钮,将会触发某个MDB将这名用户加入到数据库的希望获得更新信息用户列表中。这个动作就是一个异步的消息驱动过程,因为用户不必等待当时会返回某个结果。MDB的消息源来自Java消息服务(JMS)提供的消息队列或消息主题。自EJB 2.0规范起,JMS被加入进来以允许在容器内部实施事件驱动处理。与其他EJB不同,MDB不存在一个用户视图(如需要用户引用的远程接口),用户也不能通过资源定位获得一个MDB实例。MDB只在后台监听消息源并实施自动处理。
EJB容器
       EJB部署于应用服务器端的EJB容器中。规范给定了EJB与EJB容器之间,以及用户代码与EJB/EJB容器之间的交互方式。对于Java EE API,javax.ejb包定义了EJB类,javax.ejb.spi包定义了EJB容器应当实现的各个接口。EJB容器将为这些接口提供对应的实现类以充当客户远程代理,当客户端调用这个生成的代理类的某个方法时,代理类内部会将此调用的方法和参数封装成一个消息发送给服务器。服务器收到消息后在转发给真实的EJB实例,后者负责执行真正的业务逻辑。
总结

      学习就是有一个从微观到宏观的过程,有一个盲人摸象的过程,我们要知道我们对一个知识的理解一定是一个动态变换的过程,可能我们永远也不能看完这个知识点的的全貌,我们可以不知道,到那时我们不能认为它就是我们理解的样子。

猜你喜欢

转载自blog.csdn.net/wyj19950908/article/details/79854462
EJB