需要澄清Java有状态bean

时间:2011-12-02 10:12:09

标签: java web-services

在Java中阅读有关有状态和无状态bean的文档时,我有点理解但是这个一般情况让我感到困惑:

  • 我有一个Web服务,它需要内存中的数据来处理请求,这些数据通过Web服务请求添加到内存中,而不是从数据库加载。为了简化这一点,请考虑Web服务提供处理学生数据的方法,但首先,需要将类中所有学生的数据放入内存中,假设数据只是暂时的,所以我们不要从任何数据库中放入并加载它们。
  • 假设在第一步,我们有3个客户呼叫Web服务,将许多学生的数据添加到Web服务中。
  • 在第二步,每个客户端调用一个Web服务方法,说get getRank(学生),这个方法实现只是循环遍历所有学生的数据,并根据他在特定主题上的标记检查输入的学生的等级。这就是全部,将返回一个整数,我们不需要存储任何与客户端服务相关的东西,所以我想我们不需要有状态的bean。但是,由于每次调用将学生数据放入服务后,该数据需要保留在内存中,看来我们在这里有某种有状态的东西,但我不知道它叫什么,这是否使服务称为有状态网络服务。

谢谢你的任何想法。

1 个答案:

答案 0 :(得分:0)

这听起来像是“缓存”给我。您定期更新驻留在内存中的一大块数据以节省网络延迟;这是可能的,因为块不是太大。

我会说任何标准的缓存解决方案都可以。加载值时必须小心,以确保不进行读取操作,并确保它是一个有序的过程。多个客户端不应该有任何损害其他人数据的机会。

我同意 - 你不需要有状态会话bean。你需要缓存。