Quelle est la différence entre <mvc:annotation-driven /> et <context:annotation-config /> dans le 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 servlet de configuration de fichier uniquement.
Au Printemps 2.5 j'ai juste utilisé <context:annotation-config />
et <context:component-scan base='...'/>
tags déclaré à la fois dans 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?
Vous devez vous connecter pour publier un commentaire.
<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'est à dire@RequestMapping
,@Controller
, bien que le soutien pour les personnes est le comportement par défaut), ainsi que l'ajout du support pour déclarative validation par l'intermédiaire de@Valid
et le corps du message de l'ordonnancement avec@RequestBody
/ResponseBody
.<context:annotation-config>
dans chaque contexte.@Valid
, HTTP conversion de message avec@RequestBody
/@ResponseBody
, nouveau champ de la conversion de l'architecture, etc.<mvc:annotation-driven />
?Il y a aussi plus de détails sur l'utilisation de
<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.Aussi, il y a 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 nécessaire pour @Prévue et al...mvc:annotation-driven est une balise ajoutée au Printemps 3.0, ce qui est le suivant:
context:annotation-config
Recherche des annotations sur les haricots dans le même contexte de l'application il est défini et déclare soutien pour tous les annotations: @Autocâblés, @Resource, @Nécessaire, @PostConstruct etc etc.
@Autowired, @Resource, @Required, @PostConstruct
ET@RequestBody, @ResponseBody
- tous ces annotations alors je vais devoir ajouter ces deuxmvc:annotation-driven
context:annotation-config
balises dans ma config?