2010-06-26 22 views
1

我在我的Grails项目中有一些自定义groovy类,我想注入一个记录器和一些其他的东西到类中,就像它在服务类或控制器类。 “目标”类中的代码将以这种方式直接访问日志记录,而不用花太多时间。挂钩到Grails事件为了注入属性和方法没有beffing插件

如何在Grails项目(而不是Grails插件)中编写脚本以钩住“doWithDynamicMethods”风格的事件并以这种方式增强您自己的类?

感谢,

克里斯蒂安·索内詹森

回答

0

在应用程序中,通常你会做这在grails-app/conf目录/ BootStrap.groovy中,例如

class BootStrap { 

    def init = { servletContext -> 
     Foo.metaClass.getLog = { -> ... } 
    } 
} 
+0

嗨, 这是事实,你可以做到这一点,但我知道它可以通过脚本来完成。不知何故,当增强功能放在脚本中时,我更喜欢这个想法。我曾经看到它与Tomcat插件相关的如何将内容添加到web.xml中。不幸的是,我现在无法仿效这个例子。 – 2010-06-27 04:26:47

+0

向web.xml添加元素与向类中添加元类方法完全不同。在常规的Grails应用程序中不支持像doWithDynamicMethods这样的阶段,就像在插件中一样,但是并不需要一个。一个插件需要一个钩子来注册Spring bean并修改web.xml,因为它必须在启动过程的早期发生,但是您可以随时添加元类方法。所以BootStrap和其他地方一样好。 – 2010-06-27 17:08:19