【EJB】(一)EJB初了解

来源:互联网 发布:菜鸟商城源码介绍 编辑:程序博客网 时间:2024/05/16 14:10

我们都知道EJB是JavaEE的规范之一,下面我们就来了解一下EJB到底是什么东西。

百度百科的解释:

   EJB(Enterprise Java Beans)是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。

比较通俗的解释:

   EJB就是:"把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了"。

EJB在架构中的位置:

下面我们看一下J2EE的体系结构:


EJB属于J2EE体系结构中的业务逻辑部分,Web容器通过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程序十分简单,只需要在一个java类中加上一个注解即可。

@Statelesspublicclass EJBTest { public Book methodOne(Long id) {} public Book methodTwo(String param) {}}
@Stateless表示这个类是一个无状态的会话bean,还有一些其他的注解,这里就不一一介绍了。

我们可以通过把这个Bean导出jar包,然后发布到Jboss的目录下,就可以通过客户端调用发布的Bean了。

JNDI

在EJB中,我们可以这样理解:EJB的各种Bean由容器(一般是Jboss)提供,我们并不能再程序中使用创建实例的方法来创建EJB的Bean,而是需要使用Java的JNDI来获得EJB对象的引用。

JNDI(Java Naming and Directory Interface),即Java的命名和目录接口来获得EJB对象的引用。可以简单的把JNDI理解为一种将对象和名字绑定的技术,JBoss容器负责生产出对象,这些对象都有唯一的名字绑定,外部程序可以通过名字来获得对象的引用。所以换句话说,JNDI是Sun公司提供的一种标准的Java命名系统接口。


小结:

1.EJB实现原理:就是把原来放到客户端实现的代码放到服务器端,其他模块或者客户端通过JNDI来获得对EJB对象的引用。
 

2.EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。


原创粉丝点击