ejb的几个概念

来源:互联网 发布:nodejs请求java接口 编辑:程序博客网 时间:2024/06/09 19:01

一.会话Bean:Session 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 交互。它特别适合用于当一个业务执行的时间很长,而执行结果无需实时向用户反馈的这样一个场合。
0 0
原创粉丝点击