【问题标题】:RequestScoped in Play 2.7Play 2.7 中的 RequestScoped
【发布时间】:2023-03-09 23:59:01
【问题描述】:

我正在尝试使用 Guice in Play 将 UnitOfWork 注入我的存储库。我正在尝试将 UnitOfWork 配置为 RequestScoped,但似乎没有办法做到这一点。

我已经用谷歌搜索过一段时间了,并且一直处于堆栈溢出问题,但还没有找到明确的答案。 2019 年 RequestScoped for Play 的状态如何?

【问题讨论】:

    标签: scala dependency-injection playframework guice


    【解决方案1】:

    Play 框架默认是无状态的。来自其Web Page

    Play 基于轻量级、无状态、网络友好的架构。

    所以你用 Guice 注入的所有东西都是新创建的。

    如果您用Singleton 注释class 则会出现异常,那么每个节点只会注入一次此类。

    【讨论】:

    • 自己做测试,好像不是这样。我在同一个请求中得到了我的 UnitOfWork 的 2 个不同实例。我可以通过使用.toInstance() 绑定来解决此问题,但随后我会在多个请求中获得相同的实例,这也是我不想要的:)
    • 好的 - 我更正了我的答案 - 我没有正确理解你的情况 - 但你能不能通过构造来轻松解决这个问题,例如case class 并将其用于请求状态?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多