在Groovy应用程序中,如果要初始化元类,那么放置这些初始化的最佳位置在哪里?在Grails应用程序中,我使用了Bootstrap.groovy文件。是否有类似的任意Groovy应用程序?
编辑:为了澄清,我正在寻找一种非侵入性的方法来保证在运行主应用程序时以及在相关代码的单元测试中调用它。
答案 0 :(得分:8)
对于标准的groovy应用程序,没有像Bootstrap.groovy那样的东西,但这并不能阻止你在应用程序中做同样的事情,并且在启动时调用一次类或方法,你可以添加metaClass初始化
从以下评论中添加:
您可以为要装饰的每个类编写DelegatingMetaClass,并将其放在包groovy.runtime.metaclass.[YOURPACKAGE].[YOURCLASS]MetaClass
This page explains the steps required这样做(页面上的第2项)