我可以使用 EJB 3.0 制作自己的 Singleton Stateless Bean 吗?

发布于 2024-09-25 18:57:17 字数 158 浏览 5 评论 0原文

现在,在 EJB 3.1 中,我们可以找到 javax.ejb.Singleton 注释,它可以确保该 bean 将是单例的。

有没有一种方法可以确保我在 EJB 3.0 中使用无状态 bean 并在我的代码中进行一些修改(使用关键字 static 或其他方式来实现这一点......)

Now, with EJB 3.1, we can find the javax.ejb.Singleton annocation that can ensure that this bean is going to be singleton.

Is there a way that i can ensure singleton using stateless beans in EJB 3.0 with some modifications in my code (use of the keyword static, or other way to do that....)

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

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

发布评论

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

评论(2

ζ澈沫 2024-10-02 18:57:17

如果您能够将 @Stateless bean 池大小限制为正好 1,那么您就可以非常接近 @Singleton

效果就像有一个@Singleton,它对所有调用使用@Lock(WRITE)(即无并发),并且不会通过@Startup<急切启动/code> (它将在第一次访问时启动)。

如果您的平台可以选择立即填充 @Stateless bean 池,您仍然可以获得 @Startup 的效果。

If you're able to limit your @Stateless bean pool size to exactly 1, then you can get pretty close to an @Singleton.

The effect would be like having an @Singleton that uses @Lock(WRITE) for all calls (i.e. no concurrency) and does not eagerly startup via @Startup (it will start on first access).

You might still be able to get the effect of @Startup if your platform has the option to eagerly fill @Stateless bean pools.

面如桃花 2024-10-02 18:57:17

有没有一种方法可以确保在 EJB 3.0 中使用无状态 bean 实现单例,并对我的代码进行一些修改(使用关键字 static 或其他方法来实现这一点......)

不,没有什么标准。不过,您的容器可能会提供一些特定的扩展(例如,JBoss 有专有的@Service 注释)。

Is there a way that I can ensure singleton using stateless beans in EJB 3.0 with some modifications in my code (use of the keyword static, or other way to do that....)

No, nothing standard. Your container might provide some specific extensions though (e.g. JBoss has a proprietary @Service annotation).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文