2个REST接口如何共享实例
How can 2 REST-interfaces share instances
我们正在计划一个 "REST"-服务器,但现在遇到了问题,我们希望不同的 REST 接口共享信息。
举个例子让事情更清楚
- 我们有一个映射 URL 的 Application-Class:“http://.../MyRESTApplication”(使用@ApplicationPath,扩展应用程序)
- 我们有接口 SessionMaker 映射.../MyRestApplication/SessionMaker 并且 returns 一个会话令牌并将令牌存储在 SessionMap
- 我们有 interfrace DoThings 映射到.../MyRestApplication/doThings?={token}
- 我们有一个 class SessionMap 用来存储令牌和时间戳。
此 SessionMaker 检查用户和密码是否正确,如果正确则 returns sessiontoken(这有效)。它应该将令牌存储在 sessionMap 中,以便 DoThings 可以访问它。但是 DoThings 无法访问 SessionMap,而是创建了一个新实例。
我们如何让 SessionMaker 和 DoThings 共享相同的 SessionMap-实例。
我有 3 个想法,但不知道哪个是适用的。
- 在 ApplicationClass 中制作 SessionMaker 和 DoTHing 单例(现在在 getClasses 中)。制作一个 SessionMap 实例并将其提供给两者。
- 尝试从 Applicationcontext 中提取它,但我不知道如何。
- 将 SessionMaker 和 DoThings 合二为一,但这会导致反模式 "Blob"
我发现的唯一另一个处理类似情况的问题是:
Jersey REST Server: instantiating resource classes
您应该为此目的使用 EJBs。
我们正在计划一个 "REST"-服务器,但现在遇到了问题,我们希望不同的 REST 接口共享信息。
举个例子让事情更清楚
- 我们有一个映射 URL 的 Application-Class:“http://.../MyRESTApplication”(使用@ApplicationPath,扩展应用程序)
- 我们有接口 SessionMaker 映射.../MyRestApplication/SessionMaker 并且 returns 一个会话令牌并将令牌存储在 SessionMap
- 我们有 interfrace DoThings 映射到.../MyRestApplication/doThings?={token}
- 我们有一个 class SessionMap 用来存储令牌和时间戳。
此 SessionMaker 检查用户和密码是否正确,如果正确则 returns sessiontoken(这有效)。它应该将令牌存储在 sessionMap 中,以便 DoThings 可以访问它。但是 DoThings 无法访问 SessionMap,而是创建了一个新实例。
我们如何让 SessionMaker 和 DoThings 共享相同的 SessionMap-实例。
我有 3 个想法,但不知道哪个是适用的。
- 在 ApplicationClass 中制作 SessionMaker 和 DoTHing 单例(现在在 getClasses 中)。制作一个 SessionMap 实例并将其提供给两者。
- 尝试从 Applicationcontext 中提取它,但我不知道如何。
- 将 SessionMaker 和 DoThings 合二为一,但这会导致反模式 "Blob"
我发现的唯一另一个处理类似情况的问题是: Jersey REST Server: instantiating resource classes
您应该为此目的使用 EJBs。