2010-05-06 25 views
1

J'ai une page Web Wicket où je crée un nouvel objet de classe A: A a = new A (Utilisateur u); Dans A je voudrais avoir l'injection de setter, cependant ceci n'est pas fait réellement. J'ai entendu dire qu'il fallait fournir un constructeur vide mais comment est-il possible d'avoir aussi un constructeur non vide avec injection de setter?setter injection guice + wicket

Répondre

1

Je ne suis pas familier avec Wicket, mais je suppose que vous avez plusieurs choses sur votre page Web Wicket annoté avec @Inject, oui?

Ainsi, vous avez quelques options; par ordre de préférence:

  • Si vous êtes @Inject votre User ing, une option est d'annoter le constructeur de A avec @Inject puis dans votre page, juste @Inject soit un A ou un Provider<A> dans la page web.
  • Vous pouvez @Inject dans votre page Web un MembersInjector<A> (appelez-le aMembersInjector), puis après avoir créé votre objet A appelez aMembersInjector.injectMembers(a) pour provoquer toute l'injection Setter à se produire.
  • Vous pouvez @Inject dans votre page Web le Injector et appelez Injector.injectMembers(a) après avoir créé votre A.