代码之家  ›  专栏  ›  技术社区  ›  Yashasvi Raj Pant

关于Grails服务类Singleton属性

  •  0
  • Yashasvi Raj Pant  · 技术社区  · 6 年前

    我对Grails服务类的singleton属性有点困惑。我们知道Grails服务类在默认情况下是单例的。如果是这样,为什么它允许使用new关键字在没有任何错误的情况下实例化类?如果我们实例化服务类,它会在每个调用上创建不同的对象吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   doelleri    6 年前

    Grails服务的范围与Spring如何完成依赖注入有关。此范围仅影响注入服务。

    您可以任意多次实例化服务类,每次都会创建一个新实例。框架没有限制这一点,也不应该限制这一点。但是,您应该坚持依赖依赖注入来访问您的服务。

        2
  •  1
  •   Jeff Scott Brown    6 年前

    如果是这样,为什么它允许实例化类而没有任何 使用新关键字时出错?

    new 在应用程序中创建Grails服务类的实例。

    每次通话都有对象?

    是的,但是如上所述,您不应该创建实例。

    Grails服务工件在默认情况下是单例的,这意味着创建一个实例并将其添加到Spring应用程序上下文中。如果想要引用实例,应该让Spring在需要的地方注入实例,而不是自己创建实例。