为什么要池化无状态bean?

发布于 2024-08-11 01:27:43 字数 55 浏览 4 评论 0原文

通常我们对业务/dao层使用单例实例。对于 EJB,池化无状态会话 Bean 背后的原因是什么?

Normally we use singleton instance for business / dao layer. What is the reason behind pooling stateless session beans in case of EJBs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无声情话 2024-08-18 01:27:43

名称中的“无状态”指的是会话会话状态,即在 bean 调用之间持续存在的状态,并在会话期间保留。然而,无状态会话 bean 仍然允许有实例变量。这些实例变量不应与对话状态相关,而是在客户端之间“共享”。

换句话说,无状态会话 Bean 不能保证线程安全。

因此,容器应确保一次只有一个线程正在执行无状态会话 Bean 的给定实例,因此需要一组线程。

The "stateless" in the name refers to session conversation state, i.e. state that persists between invocations of the bean, retained for the duration of the session. However, stateless session beans are still permitted to have instance variables. Those instance variables should not relate to the conversation state, but are "shared" between clients.

In other words, stateless session beans are not guaranteed thread safe.

As a result, the container should ensure that only one thread is executing a given instance of a stateless session bean at one time, hence the need for a pool of them.

谜泪 2024-08-18 01:27:43
  • 因为它们的构造成本很高,通常需要访问外部资源,例如数据库,消息队列等。
  • 因为您不希望创建无限数量的它们,否则您将耗尽资源
  • 以便容器可以管理线程安全为你
  • Because they are expensive to construct, often requiring access to external resources like databases, message queues etc..
  • Because you don't want an unbounded number of them being created or else you will run out of resources
  • So that the container can manage thread safety for you
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文