【问题标题】:Grails session-scoped service - not workingGrails 会话范围的服务 - 不工作
【发布时间】:2013-09-10 16:43:53
【问题描述】:

我在我的一个 Grails 服务(Grails 2.2.2)中添加了static scope = "session",但由于某种原因,它的行为就像一个单例。

您不能将会话服务注入单例(默认)服务吗?

换句话说,这有什么不应该起作用的原因吗?

class DefaultService {
  def sessionService
}

class SessionService {
  static scope = 'session'

  def instanceVar = ...
}

如何解决为什么这不起作用?

【问题讨论】:

    标签: session grails


    【解决方案1】:

    希望this能帮到你。

    简而言之,您不能在单例中使用会话范围的服务,如通常的服务或标记库。手动使用服务代理,或者Scoped Proxy Plugin

    【讨论】:

    • 是的,这就是我最终所做的。如果你将会话服务注入到单例中,Grails/Spring 会很乐意让你这么做,但不会给你你想要的。它将继承更长的范围,因为范围仅在创建单例时应用。这让我感到惊讶,因为 JSF 托管 bean 的类似错误将是一个错误,而在 CDI 中,它会自动生成代理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多