1. Session Beans与Entity bean的关系:
Entity bean提供了一种对象模型,它可以有效的简化开发人员创建修改删除数据库数据所需的工作。Session bean则跨越多个业务概念对数据进行访问。Session bean包含业务逻辑而entity bean则模塑持久数据。
它们俩的关系就像是剧本和演员的关系。脱离剧本的演员是毫无意义的,他们也许可以表达什么,但却不能讲一个完整的故事;同样,如果没有实现彼此的交互,代表数据的entity bean也就没有意义了。
2. Session Beans的分类
Session Beans分为stateless和stateful两种类型。
Stateless session bean是一组相关服务的集合。每个服务由一个方法表示。它不维护任何介于两次方法调用间的状态。当你调用它的某个方法时,它会执行该方法并返回结果,既不了解也不关心前后还有哪些请求应用。
Stateless session bean是轻量而快速的:由于它不保存任何会话状态,因此也就不需要钝化或激活,进一步较低了切换的开销。
对于任何一项可以在一次方法调用中完成的活动而言,高效的Stateless session bean都是不错的选择。
Stateless session bean的生命周期:
Class.newInstance()
注入@PostConstruct
|
有两个状态:Does Not Exist和Method-Ready Pool
Does Not Exist:还未被实例化,即还没有存在于系统内存中;
Method-Ready Pool状态:当容器需要某个实例时,就进入了Method-Ready Pool状态;从Does Not Exist到Method-Ready Pool状态会执行三步:容器调用bean的Class.newInstance()
方法构造实例;容器通过注解或XML部署描述文件;容器会产生一个post-construction事件。
Bean class可以将方法标注为@PostConstruct,为该事件注册一个回调方法,该方法会在bean实例化后被容器调用。
Method-Ready Pool是一个实例池,由未被使用的Stateless session bean对象组成。因为可能有像依赖注入这样开销很大的操作,所以当这些实例不被使用时,将其暂存起来以备后续使用,这样更有效率。
Stateful session bean是客户端应用程序在服务器端的延续。它代表客户端执行各项任务,并维护着与客户端的会话状态。
和其他类型的bean不同,Stateful session bean是不使用实例池的。它在整个生命周期中只服务于一个客户端,因此对实例进行交换或实例池化都是不可能的。
Stateful session bean的生命周期:
Class.newInstance()
注入@PostConstruct
|
有三个状态:Does Not Exist,Method-Ready 和Passive
Does Not Exist:还未被实例化,即还没有存在于系统内存中;
Method-Ready状态:此状态下,可以自由接受来自客户端的调用请求;
Passive状态:当bean实例不为客户端提供服务时,可能会有一段时间处于不活跃状态。为节省服务器资源,容器可能会将bean实例钝化:将会话状态保存起来,并将bean从内存中移除。当bean实例被激活时,状态自动恢复。
分享到:
相关推荐
Session Beans主要有三种类型:Stateful Session Beans(有状态会话豆)、Stateless Session Beans(无状态会话豆)和Singleton Session Beans(单例会话豆)。在EJB 3.0及其后续版本中,它们变得更加轻量级,易于...
Session Beans有两种模式:无状态Session Beans和有状态Session Beans。无状态Session Beans不保存任何关于客户端的信息,每次调用都是独立的;而有状态Session Beans则可以跟踪客户端的状态,为同一客户端的多次...
【SessionBeanView】是与Java企业版(Java EE)中的Enterprise JavaBeans(EJB)技术相关的概念,特别是Session Beans的视图层展示。在Java EE应用程序中,EJB扮演着核心角色,提供业务逻辑处理,使得应用服务器可以...
Session Bean主要有两种类型:Stateful Session Beans(有状态会话Bean)和Stateless Session Beans(无状态会话Bean)。Stateless Session Beans在处理客户端请求时不会维护任何特定客户端的状态,每个请求都被视为...
与Stateful Session Beans(有状态会话Bean)和Stateless Session Beans(无状态会话Bean)相比,EJB 3.0更倾向于使用无状态的Session Beans,因为它们更容易管理和伸缩。 **2. 注解驱动的开发** EJB 3.0引入了注解...
Backing Beans有两种主要类型:Managed Beans和Session Beans。Managed Beans是在请求之间不保持状态的,它们为每个HTTP请求创建一个新的实例。Session Beans则在用户的整个会话期间保持状态,适合处理跨越多个请求...
EJB提供了多种类型的组件,包括Session Beans、Message-driven Beans和Entity Beans,它们各自承担不同的职责,并可以通过不同的方式相互交互。本教程将深入探讨不同EJB类型之间的调用机制。 1. Session Beans:...
1. 服务器端组件(Server-Side Components):这部分主要介绍了EJB架构中的基本概念和组件类型,包括无状态会话Bean(Stateless Session Beans)、有状态会话Bean(Stateful Session Beans)、消息驱动Bean(Message...
根据状态管理方式的不同,Session Beans又分为Stateful Session Beans和Stateless Session Beans。 - **Stateful Session Beans**:维护客户端与服务器之间的会话状态,适用于需要跨多个方法调用保持状态的应用场景...
EJB规范定义了两种主要类型的组件:Session Beans(会话Bean)和Entity Beans(实体Bean)。 1. Session Beans: Session Beans是为单个用户设计的,可视为客户端业务逻辑的延伸。它们可以提供业务服务,如计算...
EJB主要包括三种类型的组件:Session Beans(会话bean)、Entity Beans(实体bean)和Message-driven Beans(消息驱动bean)。 1. Session Beans:主要负责处理客户端请求,管理用户的会话状态。在IIIT EJB网上购物...
本学习资料主要讲解了EJB中的三大核心组件:Session Beans、Message Driven Beans和Entity Beans。 **1. Session Beans** Session Beans是EJB中的客户端接口,主要用于处理业务逻辑。它们可以是无状态的或有状态的...
SessionBean分为两种主要类型:有状态(Stateful Session Beans,SSB)和无状态(Stateless Session Beans,SSB)。这两个概念是Java EE开发者必须掌握的核心知识。 1. 有状态SessionBean(Stateful Session Bean)...
在EJB 2.0时代,它主要分为三种类型:Session Beans、Entity Beans和Message-driven Beans。 1. **Session Beans**:Session Beans是代表业务逻辑的临时对象,它们与客户端交互,执行计算或访问数据库。EJB 2.0中的...
Explore and use the EJB and JPA APIs from entities to session beans to message driven beans and more Discover web tier development APIs including JSF Facelets and Expression Language Uncover SOAP ...
- Session Beans分为Stateful Session Beans和Stateless Session Beans。Stateful Session Beans保持与客户端的会话状态,每个客户端都有对应的实例,适合处理需要用户状态的场景。而Stateless Session Beans不保存...
Session Beans 是 EJB 容器管理的对象,它们代表了客户端与服务器之间的会话。这些会话可以是单例或无状态的,也可以是有状态的,具体取决于它们需要维护的会话信息。无状态Session Bean通常用于执行独立的操作,而...
在EJB API中,主要包含了三种类型的组件:Session Beans、Message-driven Beans和Entity Beans。 1. Session Beans: - 单例(Singleton)Session Beans:代表全局唯一的服务,确保同一时间只有一个客户端能访问。...
- Session Beans分为Stateless Session Beans和Stateful Session Beans: - Stateless Session Beans不维护客户端状态,每次调用都是独立的,适合无状态的服务。 - Stateful Session Beans可以跟踪客户端状态,为...