在哪里正确初始化 Groovy 元类?
在 Groovy 应用程序中,如果要初始化元类,放置这些初始化的最佳位置在哪里?在 Grails 应用程序中,我使用了 Bootstrap.groovy 文件。任意 Groovy 应用程序是否有类似的东西?
编辑:为了澄清,我正在寻找一种非侵入式的方法来执行此操作,以保证在运行主应用程序以及相关代码的单元测试时调用它。
In a Groovy application, if you want to initialize metaclasses, where is the best place to put those initializations? In Grails apps, I've used the Bootstrap.groovy file. Is there something similar for an arbitrary Groovy app?
Edit: To clarify, I'm looking for a non-intrusive way of doing this that will guarantee it gets called when running the main application as well as in unit tests of the associated code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于标准的 Groovy 应用程序来说,没有像 Bootstrap.groovy 这样的东西,但这并不能阻止您在应用程序中做同样的事情,并拥有一个在启动时调用一次的类或方法,您可以在其中添加元类初始化
从注释中添加下面:
您可以为每个要装饰的类编写一个 DelegatingMetaClass,并将其放入包中
groovy.runtime.metaclass.[YOURPACKAGE].[YOURCLASS]MetaClass
此页面说明了执行此操作所需的步骤(页面上的第二项)
There's nothing like Bootstrap.groovy for standard groovy applications, but that doesn't stop you doing the same thing in your app and having a class or method that is called once on startup where you can add the metaClass initialization
Added from comments below:
You can write a DelegatingMetaClass for each class you wish to decorate, and place it in the package
groovy.runtime.metaclass.[YOURPACKAGE].[YOURCLASS]MetaClass
This page explains the steps required to do this (2nd item on the page)