将服务注入src / groovy类的实例

时间:2014-12-07 13:28:42

标签: grails dependency-injection

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

我想在所有这些实例中注入一些grails服务,是否有可能在不调用构造函数或setter的情况下?

1 个答案:

答案 0 :(得分:1)

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

通常src / groovy(和src / java)类是直接或间接从可以使用依赖注入的工件(controller / service / taglib / etc.)中调用的,因此它通常只是一个简单的事情那里的DI,并将这些Spring bean传递给构造函数中的src / groovy类,通过setter,或者作为使用它们的方法的参数。

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

相关问题