EJB注释是通过@来实现的

1.有状态@Stateful和无状态@Stateless会话

EJB注释是EJB技术的一个特点。@Stateless 定义本会话为无状态会话。无状态会话Bean 是一个简单 的POJO(纯粹的面向对象思想的java 对象),EJB3.0 容器自动地实例化及管理这个Bean.Stateless Session Bean不负责记录使用者状态,Stateless Session Bean一旦实例化就被加进会话池中,各个用户 都可以共用。即使用户已经消亡,Stateless Session Bean的生命期也不一定结束,它可能依然存在于会 话池中,供其他用户调用。

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

一个bean可以同时是有状态的和无状态的

2.Local接口@Local和Remote接口@Remote

当@Local和@Remote的EJB注释都不存在时,会话 Bean实现的接口默认为Local接口。如果在本机调用 EJB(确保客户端与EJB容器运行在同一个JVM),采用Local接口访问EJB优于Remote接口,因为Remote接 口访问EJB需要经过远程方法调用(RPCs)环节,而Local接口访问EJB直接从JVM 中返回EJB的引用。

3.JNDI的命名规则

JNDI 名的组成规则是“上层名称/下层名称”,每层之间以“/”分隔。默认的JNDI名称是 会话Bean +接口类型

4.改变Session Bean 的JNDI 名称

要自定义JNDI名称,可以使用@LocalBinding 和 @RemoteBinding 注释,@LocalBinding注释指定 Session Bean的Local接口的JNDI名称,@RemoteBinding注释指定Session Bean的Remote接口的JNDI名称 。例如:

@RemoteBinding (jndiBinding="com/RemoteHello")

@LocalBinding (jndiBinding="com/LocalHello")第一句定义JNDI 为com/RemoteHello,第二句定 义JNDI 为com/LocalHello

5.Bean 的生命周期

@PostConstruct:当bean对象完成实例化后,使用了这个注释的方法会被立即调用。这个注释同时适 用于有状态和无状态的会话bean. @PreDestroy:使用这个注释的方法会在容器从它的对象池中销毁一个 无用的或者过期的bean 实例之前调用。这个注释同时适用于有状态和无状态的会话bean. @PreDestroy: 当一个有状态的session bean实例空闲过长的时间,容器将会钝化(passivate)它,并把它的状态保存 在缓存当中。使用这个注释的方法会在容器钝化bean实例之前调用。这个注释适用于有状态的会话bean. 当钝化后,又经过一段时间该bean 仍然没有被操作,容器将会把它从存储介质中删除。以后,任何针对 该bean方法的调用容器都会抛出例外。

@PreDestroy:当客户端再次使用已经被钝化的有状态session bean时,新的实例被创建,状态被恢复 。使用此注释的session bean会在bean的激活完成时调用。这个注释只适用于有状态的会话bean. @Init :这个注释指定了有状态session bean初始化的方法。它区别于@PostConstruct注释在于:多个@Init注 释方法可以同时存在于有状态session bean 中,但每个bean实例只会有一个@Init注释的方法会被调用。 这取决于bean是如何创建的(细节请看EJB 3.0规范)。@PostConstruct在@Init之后被调用。另一个有用 的生命周期方法注释是@Remove,特别是对于有状态session bean.当应用通过存根对象调用使用了 @Remove注释的方法时,容器就知道在该方法执行完毕后,要把bean实例从对象池中移走。

时间: 2025-01-19 06:16:44

EJB注释是通过@来实现的的相关文章

EJB注释-1(EJB学习笔记)

 EJB注释是EJB技术的一个特点.EJB的大部分功能都是通过注释@来实现的.EJB注释1.有状态@Stateful和无状态@Stateless会话@Stateless定义本会话为无状态会话.无状态会话Bean 是一个简单的POJO(纯粹的面向对象思想的java 对象),EJB3.0 容器自动地实例化及管理这个Bean.Stateless Session Bean不负责记录使用者状态,Stateless Session Bean一旦实例化就被加进会话池中,各个用户都可以共用.即使用户已经消亡,S

EJB注释-2(EJB学习笔记之消息驱动)

消息驱动Bean消息驱动Bean(MDB)是设计用来专门处理基于消息请求的组件.一个MDB类必须实现MessageListener 接口.当容器检测到bean守候的队列一条消息时,就调用onMessage()方法,将消息作为参数传入.MDB在OnMessage()中决定如何处理该消息.你可以用注释来配置MDB 监听哪一条队列. 消息驱动Bean的服务器 @MessageDriven(activationConfig =...{       @ActivationConfigProperty(pr

POJO应用架构:Spring与EJB 3.0的对比

架构 爱因斯坦曾经说过:"每件事物都应该尽可能简单,而不是更简单".的确,对科学真理的追求都是为了简化理论的根本假设,这样我们才能处理真正麻烦的问题.企业级软件的开发也是这样的. 简化企业级软件开发的关键是提供一个隐藏了复杂性(例如事务.安全性和永续性)的应用框架.良好设计的框架组件可以提升代码的重复使用(reuse)能力,提高开发效率,从而得到更好的软件质量.但是,目前J2EE 1.4中的EJB 2.1框架组件被人们普遍认为是设计较差的和过于复杂的.Java开发者对EJB 2.1很不

EJB 3.0规范全新体验

规范 引言 期待以久的EJB3.0规范在最近发布了它的初稿.在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问bean上下文的新方法和运行时环境等等.作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系. 开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好.EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建.EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性.EJB3.

前进:从EJB 2.1到EJB 3.0

在开始讨论怎样从EJB 2.1迁移到EJB 3.0之前,有必要先了解一下迁移之后将会得到什么:主要来说,EJB 3.0减少了在创建EJB时所需的类.接口.部署描述符的数量.EJB 3.0通过用纯旧式Java对象(POJO)取代抽象bean类,用纯旧式Java接口(POJI)取代组件与主接口(Component & Home),简化了EJB的开发过程,在此,后者是可选项--你不必全部包含进它们. 部署描述符--ejb-jar.xml--由其指定了EJB名.bean对象名.接口.查找者方法.容器管理

企业JavaBean(EJB) 3.0 全新体验

期待以久的EJB3.0规范在最近发布了它的初稿.在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问bean上下文的新方法和运行时环境等等.作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系. 开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好.EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建.EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性.EJB3.0减轻了开发

注释在J2EE5.0中的完美应用

随着J2EE进入5.0时代后,J2SE5.0的很多特性也被广泛应用在J2EE程序中.而J2SE5.0的注释(Annotations)特性就是其中应用最广泛的特性之一. 在以前的J2EE版本中,都是使用大量的配置文件来设置Web程序.EJB等.但这一切在J2SE5.0中得到了彻底的改善.在J2EE5.0的注释中的一些是专门针对Web和EJB程序的.如@Resource, @EJB和@WebServiceRef等.其它的一些注释,如@RunAs和@DeclareRoles则和安全相关. 虽然我们可以

JavaBean(EJB) 3.0 全新体验_JSP编程

引言 期待以久的EJB3.0规范在最近发布了它的初稿.在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问bean上下文的新方法和运行时环境等等.作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系. 开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好.EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建.EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性.EJB3.0减轻

JavaBean(EJB) 3.0 全新体验

EJB 引言 期待以久的EJB3.0规范在最近发布了它的初稿.在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问bean上下文的新方法和运行时环境等等.作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系. 开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好.EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建.EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性.EJB3