Je migre du printemps 2.5 au printemps 3.
Ils ont introduit <mvc:annotation-driven />
ce qui fait de la magie noire. Cela devrait être déclaré uniquement dans le fichier de configuration du servlet.
Au printemps 2.5, je viens d'utiliser <context:annotation-config />
et des <context:component-scan base='...'/>
balises déclarées à la fois dans application-context.xml
et dans la configuration du servlet du répartiteur XML avec les packages de base appropriés à analyser.
Je me demande donc quelle est la différence entre les balises mvc:annotation-driven
et context:annotation-config
dans la configuration de servlet et que puis-je éliminer dans les fichiers de configuration Spring 3?
la source
<context:annotation-config>
dans chaque contexte.<mvc:annotation-driven>
n'est pas inutile, c'est juste mal nommé. En fait, il configure la prise en charge des nouvelles fonctionnalités de Spring MVC telles que la validation déclarative avec@Valid
, la conversion de message HTTP avec@RequestBody
/@ResponseBody
, la nouvelle architecture de conversion de champ, etc.Il y a également plus de détails sur l'utilisation de
<mvc:annotation-driven />
dans la documentation Spring . En un mot,<mvc:annotation-driven />
vous donne un meilleur 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 fonctionnalités décrites dans la section susmentionnée de la documentation.En outre, il existe d'autres balises «basées sur les annotations» disponibles pour fournir des fonctionnalités supplémentaires dans d'autres modules Spring. Par exemple,
<transaction:annotation-driven />
permet l'utilisation de l'annotation @Transaction,<task:annotation-driven />
est requis pour @Scheduled et al ...la source
mvc: basé sur les annotations est une balise ajoutée dans Spring 3.0 qui effectue les opérations suivantes:
context: annotation-config Recherche les annotations sur les beans dans le même contexte d'application qu'il est défini et déclare la prise en charge de toutes les annotations générales telles que @Autowired, @Resource, @Required, @PostConstruct, etc.
la source
@Autowired, @Resource, @Required, @PostConstruct
ET@RequestBody, @ResponseBody
- toutes ces annotations, alors je devrai ajouter ces deuxmvc:annotation-driven
context:annotation-config
balises dans ma configuration?