一,定义有状态Bean和无状态Bean

有状态Bean:

@Stateful
@Remote
public class StatefulEjbBean implements StatefulEjb{ private int state; @Override
public void compute(int i) {
state=state+i;
} @Override
public int getResult() {
return state;
} }

无状态Bean:

@Stateless
@Remote
public class StatelessEjbBean implements StatelessEjb { private int state; @Override
public void compute(int i) {
state = state + i;
} @Override
public int getResult() {
return state;
}
}

二,client測试及结果

1。測试有状态EJB对象:

public class StatefulEjbClient {

	public static void main(String[] args) throws Exception {
InitialContext context=new InitialContext();
//第一次会话
StatefulEjb ejb1=(StatefulEjb)context.lookup("StatefulEjbBean/remote");
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
System.out.println("第一次会话结束---------"); //第二次会话
StatefulEjb ejb2=(StatefulEjb)context.lookup("StatefulEjbBean/remote");
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
System.out.println("第二次会话结束---------"); } }

结果:

aaarticlea/png;base64,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" alt="" />

2,測试无状态EJB对象:

public class StatelessEjbClient {

	public static void main(String[] args) throws NamingException {
InitialContext context=new InitialContext();
//第一次会话
StatelessEjb ejb1=(StatelessEjb)context.lookup("StatelessEjbBean/remote");
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
System.out.println("第一次会话结束---------"); //第二次会话
StatelessEjb ejb2=(StatelessEjb)context.lookup("StatelessEjbBean/remote");
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
System.out.println("第二次会话结束---------"); //推断每次查找到的对象是否一样
System.out.println(ejb1==ejb2);//false } }

结果:

aaarticlea/png;base64,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" alt="" />

三,结果对照

通过多次运行,发现对于有状态的EJB对象。每次通过查找获得的对象都是新对象。而对于无状态的EJB对象,每次查找获得的对象都有一个单例类的效果。多次运行測试无状态的EJB对象的方法,会发现服务端的貌似始终在对一个对象进行操作。

有状态的EJB对象和无状态的EJB对象的更多相关文章

  1. Flutter - Stateful(有状态) 和 stateless(无状态) widgets

    Stateful(有状态) 和 stateless(无状态) widgets 有些widgets是有状态的, 有些是无状态的 如果用户与widget交互,widget会发生变化,那么它就是有状态的. ...

  2. http协议是无状态协议,它的无状态指的是什么,如何解决这种情况

    http是无状态的协议,也是不安全的协议, 它的无状态是指对于事务处理没有记忆能力,缺少状态意味着后续的操作需要前面的信息. 解决办法:1,通过cookie解决,2,通过session会话保存.

  3. EJB开发第一个无状态会话bean、开发EJBclient

    开发第一个无状态会话bean EJB中的三中bean: 会话Bean(Session Bean) 负责与client交互,是编写业务逻辑的地方.在会话bean中能够通过JDBC直接操作数据库.但大多数 ...

  4. EJB开发第一个无状态会话bean、开发EJB客户端

    开发第一个无状态会话bean EJB中的三中bean: 会话Bean(Session Bean) 负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过JDBC直接操作数据库,但大多数情况下 ...

  5. 基于Volley,Gson封装支持JWT无状态安全验证和数据防篡改的GsonRequest网络请求类

    这段时间做新的Android项目的client和和REST API通讯框架架构设计.使用了非常多新技术,终于的方案也相当简洁优雅.client仅仅须要传Java对象,server端返回json字符串, ...

  6. Flask基础(10)-->http的无状态协议解决办法一(客户端cookie)

    http的无状态协议 http是一种无状态协议,浏览器请求服务器时无状态的 什么是无状态? 无状态:指的是一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态 ...

  7. RestFul的无状态规则详解

    无状态原则 Statelessness:无状态原则是RESTful架构设计中一个非常重要的原则,无状态是相对于有状态而言的.在理解什么是无状态的交互请求之前,首先我们需要了解什么是有状态,并对两者进行 ...

  8. 深入RESTful无状态原则

    目录 目录 前言 无状态原则 Web服务的状态 基于状态的Web服务 基于无状态的Web服务 总结两者的区别 前言 在上篇RESTful基础知识中整体的介绍了RESTful架构设计思想的框架,在往后的 ...

  9. 无状态Web应用集成——《跟我学Shiro》

    http://www.tuicool.com/articles/iu2qEf 在一些环境中,可能需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时带上 ...

随机推荐

  1. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---13

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  2. Python Challenge 第十五关

    第15关,题目是 whom? 有一张图片,是个日历.日历的年份是 1XX6,中间是被挖去的洞.然后图中1月26日被画了个圈,当天是星期一.右下角的二月小图中有29号,可以得知这是闰年.然后查看源代码. ...

  3. 51nod 1006 最长公共子序列Lcs 【LCS/打印path】

    1006 最长公共子序列Lcs  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). ...

  4. 搭建 Maven ---基础入门

    这篇随笔从最基础的控制台  搭建maven讲,后面再升入的讲解IDEA搭建Maven. 一,Maven是什么?作用是什么? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project O ...

  5. Debugging a SQL Server query with WinDbg

    Debugging a SQL Server query with WinDbg May 13, 2014 · Klaus Aschenbrenner · 5 Comments (Be sure to ...

  6. 实现页面切换(动画效果实现,不用ViewPager)

    源代码地址 http://download.csdn.net/detail/u013210620/8791687 先看主页面布局activity_main <?xml version=" ...

  7. 【GLSL教程】(六)逐顶点的光照 【转】

    引言 在OpenGL中有三种类型的光:方向光(directional).点光(point).聚光(spotlight).本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光. 我们将向 ...

  8. Windows下批处理命令启动项目bat脚本

    文件env.cfg #server name SERVER_NAME=ActivitiService #JDK Home JDK_HOME= #Main MAIN_CLASS=com.nbtv.com ...

  9. 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例

    学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...

  10. 解决apt 依赖破损的问题

    在 安装 python3 / python2 共存的环境时, 不知道做了什么, 导致 apt 依赖故障 odoo@sy-odoo-08:~$ sudo apt-get remove apport 正在 ...