【进阶EJB】问你EJB知多少?

EJB是Enterprice Java Beans的简称,即企业Java组件,是一个用于分布式业务应用标准服务端组件模型(这里强调是服务端组件模型,后面我们将会说一下为什么是服务端而不是客户端),是一组用java语言编写的包含字段和方法的代码体,而这些代码的核心任务就是实现纯粹的业务逻辑。

采用Enterprice Java Beans架构编写的应用是可伸的、事务性的、多用户安全的,可以一次编写这些应用,然后部署在任何支持Enterprice Java Beans规范的服务器平台,如JBoss、Weblogic等。

容器知多少?EJB容器呢?

EJB要在EJB容器中运行,运行时环境由容器建立,当完成EJB的开发后,需要将EJB组件部署到EJB容器中,只有正确部署后,EJB容器才能向客户提供业务服务。在这里想说一下容器,我们可以这么理解容器,容器只是一种概念,容器可以管理对象的生命周期,对象与对象之间的依赖关系。可以使用配置文件(通常是xml)然后定义好对象的名称、如何产生等,在启动容器之后,所有的对象都可以直接被取用(如果不用容器就需要编写一段相应的代码来产生对象或建立与对象之间的依赖关系等)。也就是原来不用容器前,都是需要自行编写程序以管理对象;应用了容器之后都会自动帮忙做好,就节省了再编写程序管理对象的环节。常用的容器有WebLogic、Tomcat等

在EJB中,JBoss是一个开源的J2EE应用服务器,可以在该容器下部署和运行EJB组件。每个J2EE应用服务器都包含EJB容器和Web容器,所以既可以运行EJB,也可以运行Web应用(而Tomcat目前只是Web容器,它不能运行EJB应用)。早期的JBoss版本只包含EJB容器,而不包含Servlet容器,因此需要把JBoss与Tomcat集成,二者协同工作,才能构成完整的JEE应用服务器。新版本的JBoss同时提供了Servlet容器和EJB容器,因此既能运行JavaWeb应用,又能运行EJB组件。

EJB的分类

EJB定义了三种企业Bean,分别是Session Bean(会话Bean)、Entity Bean(实体Bean)、MessageDriven Bean(消息驱动Bean),下面我们就来一一认识一下这三种Bean.

1、首先Session Bean

Session Bean实现会话中的业务逻辑。它分为有状态Bean和无状态Bean,每当客户端发出EJB调用请求时,容器就会选择一个Session Bean来为客户端服务,Session Bean可以直接访问数据库,但更多的时候,它是通过Entity Bean实现数据访问。

2、其次Entity Bean

Entity Bean实现一个业务实体。Entity Bean代表真实物体的数据,在EJB3.0中(后面我们会专门拿出一篇文章来介绍EJB3.0),Entity Bean仅作为普通的Java对象来使用,它负责跟数据库表进行对象与关系映射(O/R Mapping)

3、最后MessageDriven Bean

MessageDriven Bean作为JMS(Java Message Service)Java消息服务的API的监听者,异步处理其中的消息。MessageDriven Bean是用来专门处理基础消息请求的组件,能够轻松的与其他EJB交互。它特别适合用于当一个业务执行的时间很长,而执行结果无需实时向用户反馈的这样一种场合。

介绍完基本的EJB方面的知识,下面我想说一下JNDI。其实上网查找了好多关于EJB方面的资料,很多资料很顺便的介绍JNDI,弄的我也是云里雾里,所以很有必要把JNDI好好扒一扒,限于篇幅的原因,下篇文章,我们就来好好扒一扒何为JNDI,敬请期待!有什么困惑有什么不足的地方,非常欢迎您在下方留言,和我沟通,谢谢!

时间: 2024-11-05 22:51:37

【进阶EJB】问你EJB知多少?的相关文章

EJB初级篇--EJB组件之会话Bean

上篇博文中我们已经详解介绍了什么是EJB.其实最简单的说:EJB就是运行在独立服务器上的组件,客户端是通过网络对EJB对象进行调用的.而我们常说的企业Bean组件可以分为三种类型:会话Bean.消息驱动Bean和实体Bean.依据应用设计的不同,开发者可以选择适合应用的组件类型.下面几篇博文中我会为大家分别详细的介绍这三种企业Bean组件.本篇博文则就先来介绍介绍会话Bean吧. 首先来介绍一下,什么是会话Bean.会话Bean能够完成客户所要求的业务操作,它是含有业务逻辑的可重用组件,并能够用

会话EJB系列(一)EJB概述

EJB(Enterprise Java Bean)是Java EE(以前叫J2EE)的核心规范,不仅仅是一种优秀的组件技术,而且还是Java EE 其它规范(如RMI,JNDI,JMS等)的具体应用. 一.EJB的概念和意义 (1)EJB规范的由来 随着软件规模的快速增大和技术复杂度(分布式软件的开发技术,如CORBA.RMI等)的增加,导致软件开发变得越来越复杂,使普通程序员难于处理各种系统级服务,从而使得大型软件系统的开发变得难以为继. 后来,Sun公司发布了EJB规范,目的是统一各种分布式

ejb学习1-helloword,ejb远程调用

环境 win7 myeclipse10 jboss4.0.5 创建第一个ejb项目 1. new EJB project 2.创建一个 sessionbean 接口 3.编写ejb接口 package com.mo.ejb; import javax.ejb.Stateless; @Stateless public interface HelloWorld { String sayHello(String name); } 4.实现接口 package com.mo.ejb; public cl

EJB初级篇--EJB组件之实体Bean

上文我们对会话Bean的生命周期和两个子类型(有状态会话Bean和无状态会话Bean)进行了详细解说,本篇博文中我们继续说说EJB组件中的实体Bean. 其实实体Bean就是一个加了注释符(@Entity)的简单java对象(POJO),实体关系和O/R映射也是通过注释符来定义的,并且提供了几种不同的数据库操作规范.一旦被EntityManager访问,它就成为了一个持久化对象,我们就可以像以前使用Hibernate一样来使用实体对象了. 下图是实体Bean的内容结构图,方便我们宏观的了解实体B

远程调用jboss as 7上部署的ejb出现No EJB receiver available for handling 异常

昨天倒腾了一天终于配置好了jboss as 7的域,今天又倒腾了一整天在上面部署了个EJB,然后试了一个利用JNDI来进行远程调用.下面记录一下过程中那些乱七八糟的问题: 首先是这个jboss-client.properties文件,各个属性值的含义可以从jboss的官方文档上得到解释https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI 1 endpoint.name=

会话EJB系列(二)EJB分类

(本文承接上一篇文章<会话EJB系列(一)EJB概述>,继续对EJB内容展开详细解说) EJB规范中定义了三种Bean: 会话Bean(Session Bean) 实体Bean(Entity Bean) 消息驱动Bean(MessageDrive Bean) 一.SessionBean的概念和作用 (1)定义 作用:用于处理业务逻辑的完整组件. 当SessionBea部署在在EJB容器中后,客户端获取该EJB组件,并调用它的方法,至方法结束,称为:客户端与SessionBean之间的一次会话,

Java中的数组操作进阶,别问我为什么,代码诠释一切!

我不是针对某个人,我说的是在座的所有人都是渣渣! package com.mi.array; import java.util.Arrays; /** * System.arraycopy(i, 0, j, 0, i.length);这种复制会覆盖目标数组元素 * 数组的copy * @author admin * */ public class CopyArray { public static void main(String[] args) { int[] i =new int[7]; i

EJB开发第一期---EJB开发配置

一.EJB 3.0简介 1.1 什么是EJB Enterprise JavaBeans是一个用于分布式业务应用的标准服务端组件模型.采用Enterprise JavaBeans架构编写的应用是可伸缩的.事务性的.多用户安全的.采用ejb编写的这些应用,可以部署在任何支持Enterprise JavaBeans规范的服务器平台,如jboss.weblogic等. EJB实际上是用于编写业务层代码.如果大家对于MVC (model-view-controller)结构的应用有所了解的话,我们知道一个

EJB的魅惑来源

  有人发帖子问学习EJB有个屁用啊?看完下面一个简单的介绍,也许你对EJB很感兴趣,它的优点极具魅惑力. 一.EJB是基于组件的开发. 利用Enterprise JavaBean,你就能像搭积木一样开发EJB组件,然后你或者是其他人可以把这些EJB组件组装货重新组装到不同的应用中去.例如,你可能创建了一个Customer(顾客)Bean(组件),它表示数据库中的一个顾客.这个Customer Bean就能用到多个应用中,比如可以用在审计程序,电子商务购物车系统或技术支持应用中.只要应用中需要表