Где правильно инициализировать метаклассы Groovy?
В приложении Groovy, если вы хотите инициализировать метаклассы, где лучше всего разместить эти инициализации? В приложениях Grails я использовал файл Bootstrap.groovy. Есть ли что-то подобное для произвольного приложения Groovy?
Редактировать: Чтобы уточнить, я ищу ненавязчивый способ сделать это, который будет гарантировать, что он вызывается при запуске основного приложения, а также в модульных тестах связанного кода.
1 ответ
Нет ничего похожего на Bootstrap.groovy для стандартных приложений Groovy, но это не мешает вам делать то же самое в своем приложении и иметь класс или метод, который вызывается один раз при запуске, где вы можете добавить инициализацию метакласса
Добавлено из комментариев ниже:
Вы можете написать DelegatingMetaClass для каждого класса, который вы хотите украсить, и поместить его в пакет groovy.runtime.metaclass.[YOURPACKAGE].[YOURCLASS]MetaClass
Эта страница объясняет шаги, необходимые для этого (2-й элемент на странице)