`

EJB 自学 教程 一些 基本 概念

阅读更多

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

1.无状态会话Bean 主要用来实现单次使用的服务,该服务能被启用许多次,但是由于无状态会话Bean 并不保留任何有关状态的信息,其效果是每次调用提供单独的使用。在很多情况下,无状态会话Bean 提供可重用的单次使用服务。其原理:当一个无状态会话Bean 发布到EJB容器时,容器就会为她创建一个对象stub并把她注册进容器的JNDI 目录,客户端代码使用她的JNDI名从容器获得他的stub。通过这个stub,客户端可以调用她的业务方法

2.有状态会话Bean 是一个可以维持自身状态的会话Bean。每个用户都有自己的一个实例,在用户的生存期内,StatefulSession Bean 保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),Stateful Session Bean 的生命期也告结束。即每个用户最初都会得到一个初始的Stateful Session Bean

3.本地接口与远程接口的区别:

@Local @Remote 注释都不存在时,会话Bean 实现的接口默认为Local 接口。如果在本机调用EJB确保客户端与EJB 容器运行在同一个JVM,否则会出错误),这时Local 接口访问EJB 优于Remote 接口,因为Remote接口访问EJB需要经过远程方法调用(RPCs)环节,而Local 接口访问EJB 直接从JVM 中返回EJB 的引用。应用情况:当会话Bean 的某些方法只EJB容器内部调用而不对外暴露时,可以把他定义在Local接口. Remote Local 接口可以指向同一个业务接口,这样客户端就不会因调用接口的不同而来回切换业务接口类。当然这种使用场合是在Remote Local 的接口方法相同的情况下。

二.消息驱动Bean(MDB):是设计用来专门处理基于消息请求的组件。它能够收发异步JMS 消息,并能够轻易地与其他EJB 交互。它特别适合用于当一个业务执行的时间很长,而执行结果无需实时向用户反馈的这样一个场合。

以上类容来自:blog.csdn.net/pengchua/archive/2008/07/23/2695717.aspx

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics