1、EJB 容器
          Enterprise Bean 是在称作 EJB 容器的特殊环境中运行的软件组件。容器容纳和管理 Enterprise Bean 的方式与 Java Web 服务器容纳 Servlet 或 HTML 浏览器容纳 Java Applet 的方式相同。Enterprise Bean 不能在 EJB 容器外部运行。EJB 容器在运行时管理 Enterprise Bean 的各个方面,包括远程访问 bean、安全性、持续、事务、并行性和资源的访问与合用。      
          EJB容器不允许客户机应用程序直接访问 Enterprise Bean。当客户机应用程序调用 Enterprise Bean 上的远程方法时,容器首先拦截调用,以确保持续、事务和安全性都正确应用于客户机对 bean 执行的每一个操作。容器自动为 bean 管理安全性、事务和持续,bean 开发人员不必将这种类型的逻辑写入 bean 代码本身中。Enterprise Bean 开发人员可以将精力集中于封装商业规则,而容器处理其它一切。 
          如同 Java Web 服务器管理许多 Servlet,容器同时管理许多 bean。为减少内存消耗和处理,容器合用资源并非常小心地管理所有 bean 的生命周期。当不使用某个 bean 时,容器将它放在池中以便另一个客户机重用,或者可能将它驱逐出内存,仅当需要时再将它调回内存。由于客户机应用程序不能直接访问 bean -- 容器位于客户机和 bean 之间 -- 因此客户机应用程序完全不知道容器的资源管理活动。
          例如,未在使用的 bean 可能被驱逐出服务器内存,而它在客户机上的远程引用却丝毫不受影响。客户机在远程引用上调用方法时,容器只需重新实例化 bean 就可以处理请求。客户机应用程序并不知道整个过程。 
          Enterprise Bean 依赖容器来获取它的需求。如果 Enterprise Bean 需要访问 JDBC 连接或另一个 Enterprise Bean,那么它需要利用容器来完成此项操作;如果 Enterprise Bean 需要访问调用者的身份、获取它自身的引用或访问特性,那么它需要利用容器来完成这些操作。Enterprise Bean 通过以下三种机制之一与容器交互:回调方法、EJBContext 接口或 JNDI。

· 回调方法:
       每个 bean 都会实现EJB接口的子类型,该接口定义了一些方法,称作回调方法。每个回调方法在 bean 的生命周期期间向它提示一个不同事件,当容器要合用某个 bean、将其状态存储到数据库、结束事务、从内存中除去该 bean 等操作时,它将调用这些方法来通知该 bean。回调方法可以让 bean 在事件之前或之后立即执行内部调整。
· EJBContext:
每个 bean 都会得到一个 EJBContext 对象,它是对容器的直接引用。EJBContext 接口提供了用于与容器交互的方法,因此那个 bean 可以请求关于环境的信息,如其客户机的身份或事务的状态,或者 bean 可以获取它自身的远程引用。
· Java 命名和目录接口 (JNDI):
JNDI 是 Java 平台的标准扩展,用于访问命名系统,如 LDAP、NetWare、文件系统等。每个 bean 自动拥有对某个特定命名系统(称作环境命名上下文 (ENC))的访问权。ENC 由容器管理,bean 使用 JNDI 来访问 ENC。JNDI ENC 允许 bean 访问资源,如 JDBC 连接、其它 Enterprise Bean,以及特定于该 bean 的属性。
 
2、 Enterprise Bean
         为创建 EJB 服务器端组件,Enterprise Bean 开发人员提供了两个定义 bean 商业方法的接口,以及真正的 bean 实现类。然后客户机使用 bean 的公共接口来创建、操作 bean,以及从服务器除去 bean。实现类,将被称作 bean 类,在运行时被实例化,且成为分布式对象。      
          Enterprise Bean 存活在 EJB 容器中,客户机应用程序通过网络利用其远程和本地接口访问它们。远程和本地接口暴露了 bean 的能力,并提供了创建、更新、交互和删除 bean 所需的全部方法。bean 是一个服务器端组件,它表示一个商业概念。

Enterprise Bean的组成部分:
(1)企业级Bean类
(2) EJB对象
(3) Home对象
(4)本地接口
(5)部署描述
(6)供应商特有文件
(7)Ejb-jar文件

3、远程和本地接口
         远程和本地接口表示 bean,但容器不允许从客户机应用程序直接访问 bean。每次请求、创建、或删除 bean 时,容器都会管理整个过程。
        本地接口表示组件的生命周期方法(创建、破坏、查找),而远程接口表示 bean 的商业方法。
        远程和本地接口分别扩展javax.ejb.EJBObject 和javax.ejb.EJBHome 接口。
        这些 EJB 接口类型定义了一组标准的实用程序方法,并为所有远程和本地接口提供了常用基本类型。 
        客户机使用 bean 的本地接口来获取对 bean 的远程接口的引用。远程接口定义了诸如用于更改客户名称的读方法和写方法的商业方法,或用于执行任务的商业方法,如使用 HotelClerk bean 在旅馆预定房间。以下是如何从客户机应用程序访问 Customer bean 的示例。在这种情况下,本地接口是 CustomerHome 类型,而远程接口是 Customer 类型。
         远程接口定义了 bean 的商业方法,这些方法特定于 bean 表示的商业概念。远程接口是从 javax.ejb.EJBObject 接口划分出的子类,而这个接口又是 java.rmi.Remote 接口的子类。现在,讨论商业方法及其含义。
          远程接口定义了读方法和写方法,用于读取和更新有关商业概念的信息。这代表一种 bean,叫作实体 Bean,它表示持久商业对象(数据存储在数据库中的商业对象)。实体 Bean 表示数据库中的商业数据,并添加特定于该数据的行为。
          在运行时,应用程序使用远程和本地接口访问 Enterprise Bean。本地接口允许应用程序创建或定位 bean,而远程接口允许应用程序调用 bean 的商业方法。

4、商业方法
         商业方法还可以表示 bean 执行的任务。虽然实体 Bean 通常都会有面向任务的方法,但是任务通常代表另一种 bean,称作会话 Bean。会话 Bean 不表示类似于实体 Bean 的数据。它们表示执行服务(如在旅馆预定房间)的商业进程或代理程序。
         有两种基本的 Enterprise Bean:实体 Bean,表示数据库中的数据,以及会话 Bean,表示进程或充当执行任务的代理程序。在构建 EJB 应用程序时,您会创建许多 Enterprise Bean,每一个都表示不同的商业概念。每个商业概念都将由实体 Bean 或会话 Bean 表示。您将根据如何使用商业概念来选择它将成为哪种 bean。

5、实体 Bean
         对于每一个远程接口都有一个实现类,在远程接口中定义了真正实现商业方法的商业对象。这就是 bean 类;bean 的关键元素。

6、会话 Bean
          HotelClerk bean 是一个会话 Bean,它在许多方面都类似于实体 Bean。会话 Bean 表示一组进程或任务,它将代表客户机应用程序执行这些进程或任务。会话 Bean 可以使用其它 bean 来执行任务或直接访问数据库。一小段代码就可以显示会话 Bean 能完成这两件事。

7、生命周期方法
          除了远程接口,所有 bean 都还有一个本地接口。本地接口提供了用于创建、破坏和定位 bean 的生命周期方法。这些生命周期行为独立于远程接口,因为它们表示不特定于单个 bean 实例的行为。以下是 Customer bean 的本地接口的定义。它扩展了 javax.ejb.EJBHome 接口,而该接口扩展了 java.rmi.Remote 接口。
     
EJB技术是基于其它两项技术的:
         Java RMI-IIOP和JNDI.
         Java RMI-IIOPSHI是J2EE真正实现强大的网络功能的机制。它允许编写分布式对象,可以使对象在内存中,跨Java虚拟机和跨物理设备进行通信。
         在Java中,RMI-IIOP不是执行远程方法调用的唯一选择,也可以使用Java远程方法调用(RMI)。
         RMI是Java中实现远程方法调用的最初方式。RMI使用java.rmi包, RMI-IIOP同时使用java.rmi包和javax.rmi包。
         JNDI是Java命名和目录接口,可以使用JNDI查找一台打印机的位置,也可以用它来定位一个对象或连接一个数据库。
         JNDI被广泛用于EJB、RMI-IIOP、JDBC等,它是通过网络查询的标准方法。

ps:此帖绝对是本人原创...

转载时..
请注明:
转至http://blog.csdn.net/Kipen/   作者:flyshitou(石の頭丶)
请尊重他人的劳动果实..
谢谢..

 --by flyshitou (石の頭丶)

 

【原创】EJB开发基础——EJB规范相关推荐

  1. [置顶] Objective-C ,ios,iphone开发基础:命名规范

    命名规范:http://bukkake.iteye.com/blog/695492  点击打开链接 转载于:https://www.cnblogs.com/pangblog/p/3292256.htm ...

  2. 【中间件技术】第三部分 Java企业版规范与中间件(7) EJB构件基础

    文章目录 7.1 EJB体系结构 7.1.1 EJB构件概述 1. EJB构件技术 2. EJB构件的特点 3. 在EJB应用中集成遗产系统 4. EJB构件与 `Java Bean` 的比较 7.1 ...

  3. EJB 开发环境与入门实例

    文章目录 1.环境准备 2.WildFly 介绍 下载 配置与启动 3. EJB 服务创建 4.客户端调用 1.环境准备 OS: Windows 8, 64 Bit JDK: 1.8 Eclipse: ...

  4. 用EJB3.0 简化EJB开发

    EJB 开发从来就没有变得更为容易 , 相反 , 随着 EJB 规范的相继发布, 它还变得越来越复杂了.由于其复杂性和本身庞大的体系,EJB被喻为一头大象.许多开发人员认为EJB就像油炸圈饼外边多的一 ...

  5. java ejb3开发_月光软件站 - 编程文档 - Java - 使用EJB3.O简化EJB开发(三)

    简化持久化容器管理 CMP实体bean将成为EJB3.0使得开发人员强制使用的一个主要的检查方式.持久化框架象如开源的已经成为不像实体bean本质上的复杂和重量级的开发J2EE持久化框架应用的被大家喜 ...

  6. 【转】采用EJB开发的三个优势

    文章源自:http://writeblog.csdn.net/PostEdit.aspx JAVA语言已经慢慢的在成为主流的开发语言之一,或者说现在已经成为了主流的开发语言.在JAVA语言平台上,也出 ...

  7. 【软件开发】EJB是什么

    EJB是"群集与企业级开发"的组件 什么是"服务集群"以及"企业级开发"? EJB 概念变成大白话:"把你编写的软件中那些需要执行 ...

  8. java基础和规范一

    (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容.而且很讨厌写基础的东西,内容比较琐碎,而且整理起来总会很多,有可能会打散成两 ...

  9. 用html5做一个介绍自己家乡的页面_(近万字)一篇文章带你了解HTML5和CSS3开发基础与应用-适合前端面试必备...

    作者 | Jeskson来源 | 达达前端小酒馆 HTML5和CSS3开发基础与应用,详细说明HTML5的新特性和新增加元素,CSS3的新特性,新增加的选择器,新的布局,盒子模型,文本,边框,渐变,变 ...

最新文章

  1. manage.py命令
  2. tableau必知必会之如何将 Tableau Server 从 Windows 迁移到 Linux 的方法
  3. spring cloud Hystrix
  4. IOS - 快速入门
  5. twitter mysql_twitter-mysql改进点
  6. VSTS2008和FTS2008的系统要求好高啊~
  7. java enumerator_NSEnumerator使用
  8. 【2019牛客暑期多校训练营(第三场)- B】Crazy Binary String(思维,01串,前缀和)
  9. 怎么在电脑上看磁盘分配单元的大小_电脑磁盘到底该不该分区?怎么分区?
  10. 简单计算机app inventor,app inventor计算器
  11. 程序员加班制作了30张可视化大屏模板,套用数据直接用
  12. linux软件安装完成信号,Linux信号机制解析
  13. [转载]Qlist的用法
  14. 2022年上半年网络工程师下午真题及答案
  15. 装上这些插件让Chrome大放异彩
  16. win10系统联想电脑亮度自动调节怎么办?
  17. 计算机图表制作教程,PPT怎么制作动态图表 PPT动态图表制作教程-电脑教程
  18. 整理的java基础知识点笔记
  19. 任意文件下载漏洞知识点
  20. 前端跨域问题—解决Firefox浏览器显示“已阻止载入混合活动内容”的方法

热门文章

  1. Uncaught ReferenceError: Mustache is not defined
  2. 视频时序动作识别(video action recognition)介绍
  3. 深度学习原理-----线性回归+梯度下降法
  4. 模式分解(2NF、3NF)
  5. 英才计划计算机潜质测评试题,2018年“英才计划”综合实践活动通知
  6. Excel VBA初级系列培训--课时1
  7. VB/VBA,请让我点名表扬你
  8. 计算方法实验:方程求根二分法、不动点迭代法、牛顿法
  9. 白盒测试(单元测试JUnit使用断言assertThat中startsWith、endsWith方法)
  10. 鼠标经过——图片放大效果