浏览 1493 次
锁定老帖子 主题:ejb有状态与无状态的比较
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-02
ejb @Stateful注解表明该session bean 为有状态对象 就是,每次通告jndi 查找的时候生成新的对象 ejb @Stateless 注解表明被注解 session bean 为无状态对象 ,类似singleton 单例对象 因为Stateful对象的需要令牌维持客户端和该对象间的通讯,所以性能方面不如Stateless
业务对象一般采用单例session对象,所以一般采用Stateless 对象;
public interface Ejb02 { public int getResult(); }
业务接口的实现 @Remote @Stateful public class Ejbstateful implements Ejb02 { private int i; public int getResult() { return i++; } }
@Remote @Stateless public class Ejbstateless implements Ejb02 { private int i; public int getResult() { return i++; } }
j2se 客户端的实现
public class Test { public static void main(String[] args) throws Exception { InitialContext context=new InitialContext(); //非单例,每次测试的时候 都是从0开始 Ejb02 ejb02=(Ejb02)context.lookup("Ejbstateful/remote"); int s=ejb02.getResult(); System.out.println(s); s=ejb02.getResult(); System.out.println(s); s=ejb02.getResult(); System.out.println(s); s=ejb02.getResult(); System.out.println(s); //单例对象,每次测试都从上次的最大数开始 Ejb02 ejb02_2=(Ejb02)context.lookup("Ejbstateless/remote"); int x =ejb02_2.getResult(); x=ejb02_2.getResult(); System.out.println(x); x=ejb02_2.getResult(); System.out.println(x); x=ejb02_2.getResult(); System.out.println(x); } }
0
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |