Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Configurazioni aggiuntive e WebApplicationContext

Link copiato negli appunti

Configurazioni aggiuntive

Spring MVC si basa sul modello di sviluppo convention over configuration che prevede che per avviare una applicazione base siano necessarie poche configurazioni in quanto è preferibile utilizzare le convenzioni previste dagli sviluppatori. Questo ovviamente è valido per applicazioni standard, ma non può essere la regola.

La configurazione basata sulle convenzioni è banale ma è ovviamente possibile personalizzarla ulteriormente per adattarla alle esigenze e preferenze di ogni sviluppatore.

Per esempio utilizzando Maven è consigliato utilizzare la cartella resources per tutti i file di configurazione dell'applicazione al posto della cartella WEB-INF. Grazie al parametro contextConfigLocation è possibile differenziare il percorso del (o dei) file XML di configurazionedel contesto di Spring MVC:

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:META-INF/spring/*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

In questo sempio ho creato una cartella ad hoc all'interno di META-INF dedicata alle configurazioni
di Spring MVC; inoltre utilizzando il meta carattere * possiamo differenziare i bean anche in diversi
file XML avendo la certezza che il framework li leggerà tutti.

Altri parametri di inizializzazione della servlet sono disponibili nella documentazione ufficiale.

WebApplicationContext

Per ciascuna servlet utilizzata viene istanziato un WebApplicationContext all'interno del quale vivono tutti i bean definiti. Questo contesto viene agganciato allo standard ServletContext in modo da essere recuperato facilmente.

All'interno di questo speciale contesto sono presenti alcuni bean che configurano in maniera particolare Spring MVC. Alcuni bean sono già presenti di default ma ovviamente si possono personalizzare sempre tenendo in mente la logica del convention over configuration.

I principali bean presenti nel WebApplicationContext sono:

Bean Descrizione
HandlerMapping Bean che si occupa di mappare le url invocate dal client verso un particolare metodo o classe; il bean di default utilizza le java annotations
HandlerExceptionResolver Bean che gestisce l'output al client in caso di eccezioni
ViewResolver Bean che si occupa di identificare quale view caricare sulla base del nome in formato stringa
LocaleResolver Bean che gestisce l'internazionalizzazione

Per sovrascrivere questi bean basta includere nel contesto un nuovo bean dello stesso tipo che punti
ad una classe esterna: vedremo come nelle prossime lezioni, per il momento accontentiamoci dei
bean di default.

Ti consigliamo anche