【问题标题】:inject service into instance of src/groovy class将服务注入 src/groovy 类的实例
【发布时间】:2014-12-07 13:28:41
【问题描述】:

我有以下问题: 在 src/groovy 下,我有在应用程序的许多部分创建的类(不像 spring bean,而是在运行时使用 new () 运算符)

我想在所有这些实例中注入一些 grails 服务,是否可以在不调用构造函数或设置器的情况下以某种方式实现?

【问题讨论】:

  • 你能详细说明你想做什么吗?您只是在寻找自动的东西吗?

标签: grails dependency-injection


【解决方案1】:

调用构造函数和设置器是我所知道的进行依赖注入的仅有的两种方法。您可以使用反射并直接设置字段值,但这消除了在注入依赖项时执行某些逻辑的任何机会。

通常 src/groovy(和 src/java)类是直接或间接从可以使用依赖注入的工件(控制器/服务/taglib/等)调用的,因此在那里执行 DI 通常很简单,并将这些 Spring bean 在其构造函数中、通过 setter 或作为使用它们的方法的参数传递给 src/groovy 类。

很明显,如果这些类是 Spring bean,则不会有问题,因为 Spring 创建它们并管理依赖项。但是,一旦您使用具有 bean 依赖关系的非 bean,您要么必须自己完成工作,要么查看 AOP 样式的解决方案,因为您需要以某种方式通知您有一个新实例需要配置。我认为这是可行的,可能使用 AspectJ,但它可能会比它的价值更多,并添加一层额外的魔法,以进一步混淆常规 Grails 和 Groovy 魔法之外的新团队成员。

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 2012-05-25
    • 2012-01-03
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    相关资源
    最近更新 更多