gpt4 book ai didi

java - REST 端点 - Singleton 与 RequestScoped

转载 作者:行者123 更新时间:2023-12-01 09:37:20 24 4
gpt4 key购买 nike

When to use @Singleton annotation of Jersey? -

By default Jersey creates a new instance of the resource class for every request. So if you don't annotate the Jersey resource class, it implicitly uses @RequestScoped scope.

@RequestScoped由于各种原因,端点看起来更合适。它是无状态的,为每个请求提供新的实例。我已经基于http://www.benmccann.com/hibernate-with-jpa-annotations-and-guice实现了DAO。提供的示例EntityManager对象仅在 @RequestScoped 中不同环境,因为它们是从 ThreadLocal<EntityManager> 收到的缓存(Jersey, Guice and Hibernate - EntityManager thread safety)。

另一方面,我遇到过 Jersey 端点被注释为 @Singleton 的应用程序。 。但删除注释似乎不会改变应用程序的行为/逻辑。

何时 @Singleton应该使用而不是默认的 @RequestScoped对于 REST 端点?

最佳答案

这在 REST 应用程序中并不重要 - 除非您有基于 session 的 Rest api(提示:不要这样做,这不是 REST 的重点)。

单例可能会变慢(在 Jersey ),因为 Jersey 使用单个类加载器,并且当您的 API 忙于回复其他人时,对该端点的所有其他请求可能需要一段时间才能完成。

关于java - REST 端点 - Singleton 与 RequestScoped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com