2011-08-01 5 views
5

Dans une application Groovy, si vous voulez initialiser des métaclasses, quel est le meilleur endroit pour mettre ces initialisations? Dans les applications Grails, j'ai utilisé le fichier Bootstrap.groovy. Y at-il quelque chose de similaire pour une application Groovy arbitraire?Où initialiser correctement les métaclasses Groovy?

Edit: Pour clarifier, je cherche une façon non-intrusive de le faire qui garantira qu'il est appelé lors de l'exécution de l'application principale ainsi que dans les tests unitaires du code associé.

Répondre

8

Il n'y a rien comme Bootstrap.groovy pour les applications groovy standard, mais cela ne vous empêche pas de faire la même chose dans votre application et ayant une classe ou une méthode qui est appelée une fois au démarrage où vous pouvez ajouter l'initialisation MetaClass


Ajouté des commentaires ci-dessous:

vous pouvez écrire un DelegatingMetaClass pour chaque classe que vous souhaitez décorer, et placez-le dans le paquet groovy.runtime.metaclass.[YOURPACKAGE].[YOURCLASS]MetaClass

Pour ce faire, (0e élément sur la page)
+0

Y a-t-il un moyen non-intrusif de garantir que l'application principale sera exécutée lors de l'exécution de l'application principale, ainsi que dans les tests unitaires du code associé? –

+1

@Alan Vous pouvez écrire une DelegatingMetaClass pour chaque classe que vous souhaitez décorer et la placer dans le paquet 'groovy.runtime.metaclass. [YOURPACKAGE]. [YOURCLASS] MetaClass' [cette page explique les étapes nécessaires pour cela] (http://groovy.codehaus.org/Using+the+Delegating+Meta+Class) (2ème article sur la page) –

+0

@tim IMO, le commentaire ci-dessus devrait être déplacé dans la réponse elle-même –

Questions connexes