1 2 3 下一页 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名称。例如: (责任编辑:admin) |