tutorial scan que mvc example español driven context conceptos component annotation spring spring-mvc spring-3

spring - scan - ¿Cuál es la diferencia entre<mvc: annotation-driven/> y<context: annotation-config/> en servlet?



spring mvc que es (3)

Estoy migrando de Spring 2.5 a Spring 3.

Han introducido <mvc:annotation-driven /> que hace algo de magia negra. Se espera que esto se declare solo en el archivo de configuración de servlet.

En Spring 2.5 acabo de utilizar las etiquetas <context:annotation-config /> y <context:component-scan base=''...''/> declaradas tanto en application-context.xml como en el XML de configuración del servlet del despachador con paquetes base apropiados para escanear.

Entonces, me pregunto cuál es la diferencia entre mvc:annotation-driven y context:annotation-config tags en servlet config y ¿qué puedo eliminar en los archivos de configuración de Spring 3?


También hay más detalles sobre el uso de <mvc:annotation-driven /> en 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 los documentos mencionada anteriormente.

Además, hay otras etiquetas "anotadas" que están disponibles para proporcionar funcionalidad adicional en otros módulos de Spring. Por ejemplo, <transaction:annotation-driven /> habilita el uso de la anotación @Transaction, <task:annotation-driven /> es obligatorio para @Scheduled et al ...


<context:annotation-config> declara compatibilidad con anotaciones generales como @Required , @Autowired , @PostConstruct , etc.

<mvc:annotation-driven /> declara compatibilidad explícita para controladores MVC impulsados ​​por anotación (es decir, @RequestMapping , @Controller , aunque el soporte para ellos es el comportamiento predeterminado), además de agregar soporte para validación declarativa a través de @Valid y clasificación de cuerpo de mensaje con @RequestBody / ResponseBody .


mvc: annotation-driven es una etiqueta añadida en Spring 3.0 que hace lo siguiente:

  1. Configura Spring 3 Type ConversionService (alternativa a PropertyEditors)
  2. Agrega soporte para formatear campos numéricos con @NumberFormat
  3. Agrega soporte para formatear los campos de Fecha, Calendario y Hora Joda con @DateTimeFormat, si Joda Time está en el classpath
  4. Agrega soporte para validar las entradas de @Controller con @Valid, si hay un proveedor JSR-303 en el classpath
  5. Agrega soporte para soporte para leer y escribir XML, si JAXB está en classpath (conversión de mensaje HTTP con @ RequestBody / @ ResponseBody)
  6. Agrega soporte para leer y escribir JSON, si Jackson está en el classpath (en la misma línea que el # 5)

context: annotation-config Busca anotaciones en beans en el mismo contexto de aplicación y define el soporte para todas las anotaciones generales como @Autowired, @Resource, @Required, @PostConstruct, etc.