在哪里正确初始化 Groovy 元类?

发布于 2024-11-27 12:05:15 字数 175 浏览 0 评论 0原文

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╭ゆ眷念 2024-12-04 12:05:15

对于标准的 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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文