加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 具有实例变量的无状态会话bean

发布时间:2020-12-14 14:26:41 所属栏目:Java 来源:网络整理
导读:我有一个无状态会话bean,它包含一个公共方法,几个私有方法和一些实例级变量.下面是一个伪代码示例. private int instanceLevelVarpublic void methodA(int x) { this.instanceLevelVar = x; methodB();}private void methodB() { System.out.println(instanc
我有一个无状态会话bean,它包含一个公共方法,几个私有方法和一些实例级变量.下面是一个伪代码示例.
private int instanceLevelVar

public void methodA(int x) { 
  this.instanceLevelVar = x;
  methodB();
}

private void methodB() {
  System.out.println(instanceLevelVar);
}

我看到的是methodB打印未传递到MethodA的值.最好我可以告诉它从同一个bean的其他实例打印值.会造成什么?

我应该指出代码的工作原理是99.9%的时间.但是,.01%是对我造成了一些严重的问题/疑虑.

我明白,如果我有不同的公共方法,那么我可能不会在调用之间返回相同的bean,这将导致这种行为.但是,在这种情况下,唯一的一个呼叫就是单一的公共方法.容器(Glassfish在这种情况下)是否仍然在私有方法调用之间交换bean?

(编辑)我将“类级别”重命名为“实例级别”,因为这引起了一些混乱.

解决方法

我根本不用在无状态会话bean中使用实例变量.不管你遇到的问题是什么原因,这可能不是你想要做的.只需尝试使用局部变量,或者定义您从无状态会话bean业务方法调用的助手类中的实例变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读