Events 挂接Grails事件,以便在不挂接af插件的情况下注入属性和方法

Events 挂接Grails事件,以便在不挂接af插件的情况下注入属性和方法,events,grails,hook,Events,Grails,Hook,我的Grails项目中有一些自定义groovy类,我想在类中注入一个记录器和一些其他东西,就像它在服务类或控制器类中工作一样。“target”类中的代码将以这种方式直接访问日志,而无需进一步ado 在Grails项目中(相对于Grails插件),如何编写脚本以“doWithDynamicMethods”样式钩住事件,并以这种方式增强您自己的类 谢谢 Christian Sonne Jensen在应用程序中,通常您会在grails app/conf/BootStrap.groovy中执行此操作,例

我的Grails项目中有一些自定义groovy类,我想在类中注入一个记录器和一些其他东西,就像它在服务类或控制器类中工作一样。“target”类中的代码将以这种方式直接访问日志,而无需进一步ado

在Grails项目中(相对于Grails插件),如何编写脚本以“doWithDynamicMethods”样式钩住事件,并以这种方式增强您自己的类

谢谢


Christian Sonne Jensen

在应用程序中,通常您会在grails app/conf/BootStrap.groovy中执行此操作,例如

class BootStrap {

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

嗨,这是真的,你可以做到这一点,但我知道它可以做的脚本。不知何故,我更喜欢将增强放在脚本中的想法。我曾经看到它与Tomcat插件如何向web.xml添加内容有关。不幸的是,我现在找不到这个例子。向web.xml添加元素与向类添加元类方法完全不同。在常规的Grails应用程序中不支持像插件中那样的“doWithDynamicMethods”阶段,但不需要这样。插件需要一个钩子来注册Springbean和修改web.xml,因为这必须在启动过程的早期进行,但是您可以随时添加元类方法。所以BootStrap是一个很好的地方。