J'ai le code dispersés à travers un service dans un plug-in, en utilisant AntBuilder comme ceci:Injecter un AntBuilder en utilisant Spring?
def ant = new AntBuilder()
Il en résulte un code qui est vraiment difficile de tester je voudrais injecter un AntBuilder-portée prototype que je peux remplacer avec un simulacre. Mais, je suis à peu près un débutant de printemps ... comment ferais-je cela?
J'ai essayé ceci dans la simple mise /grails-app/conf/spring/resources.groovy:
beans = {
antBuilderBean(groovy.util.AntBuilder){b ->
b.scope="prototype"
}
}
et
class MyService {
def antBuilderBean
mais antBuilderBean est nulle. Si je mets la définition du bean dans l'application resources.groovy (plutôt que le plugin's resources.groovy), alors le nom du bean apparaît dans le contexte de l'application, mais antBuilderBean reste à null dans le service code.
Ai-je besoin d'une sorte de grain d'usine ici? Ou dois-je explicitement construire le bean à partir du contexte Spring ou quelque chose?
Merci! J'ai également trouvé que je pouvais mettre la définition du bean dans la méthode GrailsPlugin.groovy doWithSpring(). –
Wayne
Désolé, n'a pas compris que c'était dans un plugin - doWithSpring() est l'endroit pour enregistrer des beans dans un plugin. –