Je semble avoir du mal à comprendre ces 2 annotations. J'ai essayé de lire les javadocs mais ne peux toujours pas comprendre. Quelqu'un peut-il aider à expliquer avec un code simple sur ces 2? Merci beaucoup d'avance.Spring framework @Configurable vs @Configuration
Répondre
Vous utilisez @Configuration
en remplacement de la configuration XML pour configurer les beans de printemps. Ainsi, au lieu d'un fichier xml, nous écrivons une classe et l'annotons avec @Configuration
et définissons les beans en utilisant l'annotation @Bean
sur les méthodes.
Et enfin vous utilisez AnnotationConfigApplicationContext
pour enregistrer cette classe @Configuration
et donc le printemps gère les haricots définis. Petit exemple que vous pouvez trouver à Spring Configuration Documentaion.
mentionnant à partir du lien au-dessus
Il est une autre façon de configuration indique qu'une classe déclare une ou plusieurs méthodes @Bean et peut être traité par le conteneur Spring pour générer des définitions de soja et des demandes de service pour ces haricots au runtime.
Et @Configurable
est une annotation qui injecte des dépendances dans des objets qui ne sont pas gérés par Spring en utilisant des bibliothèques aspectj. c'est-à-dire que vous utilisez toujours l'ancienne méthode d'instanciation avec l'opérateur new
pour créer des objets, mais le ressort prendra soin d'injecter les dépendances dans cet objet automatiquement pour vous. Vous pouvez en trouver un échantillon here
@Configuration est le cœur du mécanisme de configuration basé sur Java et fournit une alternative à la configuration basée sur XML. @ Les classes de configuration sont similaires aux classes régulières @Components, sauf que les méthodes annotées avec @Bean sont utilisées pour les beans usine.
Merci @Madhusudana! C'est exactement la réponse que je cherche. Aussi, je veux découvrir Configurable parce que Rod Johnson a dit que c'est l'un des nombreux joyaux cachés au printemps. Mais la plupart du temps, je vois juste que nous utilisons Configuration comme une configuration basée sur Java. –