Estoy migrando de Spring 2.5 a Spring 3.
Han introducido <mvc:annotation-driven />
que hace un poco de magia negra. Se espera que esto se declare solo en el archivo de configuración de servlet.
En Spring 2.5 acabo de usar <context:annotation-config />
y las <context:component-scan base='...'/>
etiquetas declararon tanto en la application-context.xml
configuración de servlet del despachador como en los paquetes base apropiados para escanear.
Entonces, me pregunto cuál es la diferencia entre mvc:annotation-driven
y las context:annotation-config
etiquetas en la configuración del servlet y qué puedo eliminar en los archivos de configuración de Spring 3.
fuente
<context:annotation-config>
en cada contexto.<mvc:annotation-driven>
no tiene sentido, solo se llama incorrectamente. En realidad se configura soporte para el nuevo Spring MVC características tales como la validación declarativa con@Valid
, HTTP conversión de mensajes con@RequestBody
/@ResponseBody
, la nueva arquitectura de conversión de campo, etc.También hay más detalles sobre el uso de
<mvc:annotation-driven />
los documentos de Spring . En pocas palabras,<mvc:annotation-driven />
le brinda un mayor control sobre el funcionamiento interno de Spring MVC. No necesita usarlo a menos que necesite una o más de las características descritas en la sección de documentos mencionada anteriormente.Además, hay otras etiquetas "basadas en anotaciones" disponibles para proporcionar funcionalidad adicional en otros módulos Spring. Por ejemplo,
<transaction:annotation-driven />
permite el uso de la anotación @Transaction,<task:annotation-driven />
se requiere para @Scheduled et al ...fuente
mvc: impulsado por anotaciones es una etiqueta agregada en Spring 3.0 que hace lo siguiente:
context: annotation-config Busca anotaciones en beans en el mismo contexto de aplicación que se define y declara el soporte para todas las anotaciones generales como @Autowired, @Resource, @Required, @PostConstruct, etc.
fuente
@Autowired, @Resource, @Required, @PostConstruct
Y@RequestBody, @ResponseBody
, todas estas anotaciones, tendré que agregar ambasmvc:annotation-driven
context:annotation-config
etiquetas en mi configuración?