Comment fonctionne le Wicket's @springbean code> Annotation fonctionne? Utilise-t-il la réflexion au moment de l'exécution? Est-ce que cela rend le compilateur injecter du code? Ou quoi? P>
3 Réponses :
Spring utilise le chargeur de classe et ASM au moment de la recherche de toutes les classes annotées.
Vous pouvez ceci utilise" un href = " http://static.springsource.org/spring/docs/2.5.x/pi/org/springframework/context/annotation/classpathbeandeFinitionCanner.html "rel =" Nofollow NOREFERRER "> CLASSPATHBEANDEFINITIONSCANNER En interne qui utilisera le < Un href = "http://static.springsource.org/spring/docs/2.5.6/apr/org/springframework/core/io/support/pathMatchingResourcePatternResolver.html" rel = "Nofollow Noreferrer"> PathMatchingResourcePatternResolver Pour trouver les classes et la base de l'ASM MetaDataReader pour lire les annotations. P> P>
Ce mécanisme n'a rien à voir avec @springbean code>, ce qui est une construction de guichet, pas un printemps.
Je n'ai jamais utilisé de guichet. Je pensais qu'il voulait dire l'@Component, etc. Annotations. Bon à savoir.
Pour utiliser celui-ci, il suffit d'ajouter l'écouteur SpringComponentinInject à l'application de Wicket pour écouter les instanciations des composants.
La classe marquée d'une annotation @springbean doit avoir l'une des: p>
Une exception sera lancée si ces conditions ne sont pas remplies car Wicket ne pourront pas proxy la classe. P>
Ceci est une information utile mais pas vraiment une réponse à la question. Cela pourrait être mieux comme un commentaire la question ou une autre réponse.
Il n'y a pas de
@springbean code> annotation dans l'API de printemps. Il y en a un dans Wicket, cependant, c'est ce que vous utilisez?
Ah, je ne savais pas ça - oui j'utilise Wicket. Je changerai la question et les tags pour refléter cela. Merci.
@Tarquila - Je pense qu'il est plus facile de résoudre cette question pour le printemps. Et ajoutez un nouveau pour le guichet.
Je pense que la réponse acceptée pour cette question devrait être modifiée. La réponse de Skaffman semble être la vraie réponse correcte.