Quelque part, j'ai lu que Spring offre plus de commodité que de configuration. Mais les gens de Spring apportent tellement de changements à la configuration, que je suis maintenant vraiment confus d'utiliser la configuration xml ou l'annotation.
J'aimerais que n'importe qui suggère une méthodologie infaillible ou une règle empirique dans l'utilisation du xml et des annotations.
Des exemples à SO pour montrer que de nombreux débutants comme moi se perdent dans la configuration.
-
Je ne semble pas saisir la fonctionnalité derrière
<context:annotation-config>
et<context:component-scan>
.D'après ce que j'ai lu, ils semblent gérer différentes annotations (@Required, @Autowired etc vs @Component, @Repository, @Service etc.) mais aussi d'après ce que j'ai lu, ils enregistrent les mêmes classes de post-processeur de bean.
Pour me confondre encore plus, il y a un
annotation-config
attribut sur<context:component-scan>
... -
J'ai toujours la balise d'analyse des composants:
<context:component-scan base-package="com.mycompany.maventestwebapp" />
mais j'ai aussi une autre balise (qui ressemble à une tâche similaire), celle-ci:
<annotation-driven />
Quelle est la différence entre ces deux balises? Une autre chose "étrange" est que l'exemple précédent (qui n'utilise pas la balise pilotée par annotation) est très similaire au projet créé par STS en utilisant le projet de modèle Spring MVC mais si je supprime la balise pilotée par annotation de sa configuration fichier le projet ne s'exécute pas et donnez-moi l'erreur suivante: HTTP Status 404 - ...
Spring 3.2 n'a plus besoin de cglib pour le proxy, mais les versions inférieures utilisent cglib. Une citation du blog springsource
Afin de générer de tels proxys, Spring utilise une bibliothèque tierce appelée cglib. Malheureusement, ce projet n'est plus actif. Dans Spring 3.2, il est très probable que Spring utilise Javassist à la place par défaut.
Est-ce suffisant pour suggérer que Spring est une confusion sur la configuration?