Domanda

sto migrando dalla primavera 2,5 a molla 3.

Si hanno introdotto <mvc:annotation-driven /> che fa un po 'di magia nera. Questo dovrebbe essere dichiarato in un solo file di configurazione servlet.

tag <context:annotation-config /> e <context:component-scan base='...'/> Nella primavera del 2,5 ho appena usato dichiarati sia in application-context.xml e dispatcher XML di configurazione servlet con i pacchetti di base necessarie per eseguire la scansione.

Quindi, mi chiedo qual è la differenza tra mvc:annotation-driven e context:annotation-config tag servlet config e cosa posso eliminare in primavera 3 file di configurazione?

È stato utile?

Soluzione

<context:annotation-config> dichiara il supporto per le annotazioni generali come @Required, @Autowired, @PostConstruct, e così via.

<mvc:annotation-driven /> dichiara supporto esplicito per i controller MVC annotazione-driven (cioè @RequestMapping, @Controller, anche se il supporto per chi è il comportamento predefinito), così come l'aggiunta del supporto per la convalida dichiarativo tramite @Valid e il messaggio di smistamento corpo con @RequestBody / ResponseBody.

Altri suggerimenti

C'è anche un po 'di dettagli sull'uso del <mvc:annotation-driven /> nel docs primavera . In poche parole, <mvc:annotation-driven /> offre un maggiore controllo sui meccanismi interni di Spring MVC. Non è necessario utilizzare a meno che non avete bisogno di uno o più dei funzionalità illustrate nella sezione citata dei documenti.

Inoltre, ci sono altri "annotazione-driven" tag disponibili per fornire funzionalità aggiuntive in altri moduli di primavera. Ad esempio, <transaction:annotation-driven /> consente di utilizzare l'annotazione @Transaction, è necessario <task:annotation-driven /> per @Scheduled et al ...

MVC: annotation-driven è un tag aggiunto nella primavera del 3.0 che fa il seguente:

  1. configura il tipo Spring 3 ConversionService (in alternativa a PropertyEditors)
  2. Aggiunge il supporto per la formattazione campi numerici con @NumberFormat
  3. Aggiunge il supporto per la formattazione di data, il calendario, e campi Joda tempo con @DateTimeFormat, se Joda tempo è nel classpath
  4. supporto aggiunge per la convalida ingressi @Controller con @Valid, se un JSR-303 Provider è sul classpath
  5. Aggiunge il supporto per il supporto per la lettura e la scrittura di XML, se JAXB è sul classpath (conversione di messaggi HTTP con @ RequestBody / @ responseBody)
  6. Aggiunge il supporto per la lettura e la scrittura di JSON, se Jackson è o n classpath (lungo le stesse linee come 5 #)

context: annotation-config Looks per le annotazioni sui fagioli nello stesso contesto applicativo Essa è definita e dichiara il supporto per tutte le annotazioni generali come @Autowired, @Resource, @Required, @PostConstruct ecc ecc

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top