154 votes

Quelle est la différence entre <mvc:annotation-driven></mvc:annotation-driven> et <context:annotation-config></context:annotation-config> dans la servlet ?

Je suis de la migration de Printemps de 2,5 à Ressort 3.

Ils ont introduit <mvc:annotation-driven /> qui fait de la magie noire. Ce devrait être déclarée dans le fichier de configuration de la servlet.

Au Printemps 2.5 j'ai juste utilisé <context:annotation-config /> et <context:component-scan base='...'/> tags déclaré les deux en application-context.xml et dispatcher le servlet de configuration XML approprié paquets de base à l'analyse.

Donc je me demande quelle est la différence entre mvc:annotation-driven et context:annotation-config balises dans le servlet de configuration et que puis-je éliminer au Printemps 3 fichiers de configuration?

147voto

skaffman Points 197885

<context:annotation-config> déclare soutien général des annotations telles que @Required, @Autowired, @PostConstruct, et ainsi de suite.

<mvc:annotation-driven /> déclare explicitement en faveur de l'annotation-driven contrôleurs MVC (c - @RequestMapping, @Controller, bien que le soutien pour les personnes est le comportement par défaut), ainsi que l'ajout du support pour declrative validation par l'intermédiaire de @Valid et le corps du message de l'ordonnancement avec @RequestBody/ResponseBody.

36voto

seanhodges Points 8005

Il y a également plus de détails sur l'utilisation de l' <mvc:annotation-driven /> dans le Printemps docs. En un mot, <mvc:annotation-driven /> vous donne plus de contrôle sur le fonctionnement interne de Spring MVC. Vous n'avez pas besoin de l'utiliser, sauf si vous avez besoin d'une ou plusieurs des caractéristiques décrites dans ladite section de la documentation.

Il existe également d'autres "annotation-driven" tags disponibles pour fournir des fonctionnalités supplémentaires dans d'autres Printemps des modules. Par exemple, <transaction:annotation-driven /> permet l'utilisation de l' @Transaction annotation, <task:annotation-driven /> est requis pour @Prévue et al...

-1voto

Praveen R. Points 119

J’ai fait quelques retouches dans mon *-servlet.xml fichier. Selon ce que vous voulez faire, c'est-à-dire j’ai juste besoin que les conteneurs de Servlet pour travailler (@Controller, @RequestMapping, @ResponseBody...), ainsi que Jackson JSON traitement - j’ai fait ce qui suit :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X