Introduzione a Spring 3.X MVC

Spring MVC è la componente web del framwork Spring. Esso fornisce un ricco insieme di funzionalità per costruire robuste Web Application. Il framework Spring MVC è architetturato e disegnato in modo tale che ogni sin gola parte di logica e di funzionalità risulti essere altamente configurabile.

Inoltre Spring può integrarsi facilmente con altri popolari Framework rivolti alle Web Application come ad esempio Struts, WebWork, Java Server Faces e Tapestry. Ciò significa che si può dire a Spring di usare un qualsiasi di questi framework. Inoltre Spring non è strettamente accoppiato con le Servlet o le JSP per disegnare le View al client. L’intergrazione con altre tecnologie per l’implementazione di View come Velocity, Freemarker, Excell o PDF è comunque possibile.

In Spring Web MVC possiamo usare ogni oggetto come un oggetto command o come un oggetto di form; Non dobbiamo implementare un’interfaccia specifica del framework o una classe base.
Il binding dei dati in Spring è altamente flessibile: per esempio tratta la mancanta corrispondenza di dati come errori di validazione che possono essere valutati dall’applicazione e non come errori di sistema.

Richiesta di elaborazione del ciclo di vita:

Ciclo di vita di Spring MVC

Ciclo di vita di Spring MVC

Il framework Spring Web MVC è, come molti altri web framework MVC, guidato dalle richieste e disegnato intorno ad una servlet centrale che dispaccia le richieste ai controllers e che offre altre funzionalità che facilitano lo sviluppo di Web Application. La DispatcherServlet di Spring è completamente integrata con lo IoC container di Spring e ci permette di usare ogni altro aspetto (features) di Spring.

Di seguito è mostrata la richesta di elaborazione del ciclo di vita di Spring 3.0 MVC:

  1. Il client manda una richiesta al web container tramite una richiesta http.
  2. Questa richiesta in entrata viene intercettata dal Front Controller (la DispatcherServlet) e questo cercherà di trovare un appropriato Handler Mappings.
  3. Con l’aiuto dell’Handler Mappings, la DispatcherServlet invierà la richiesta al controller appropriato.
  4. Il controller proverà a processare la richiesta e ritornerà un oggetto Model and View sotto forma di istanza ModelAndView al front controller.
  5. Il Front Controller allora proverà a risolvere la View (che può essere una pagina JSP, Freemarker, Velocity etc) consultando l’oggetto View Resolver.
  6. La View selezionata dall’oggetto ViewResolver viene allora resa indietro al client.

 

CARATTESTISTICHE DI SPRING 3.1\3.2:

Il framework Spring 3.1\3.2 supporta Java 5. Esso fornisce un sistema di configurazione basato sulle annotazioni.
Le caratteristiche di Java 5 come i generics, le annotazioni, varargs, etc possono essere usati in Spring.

  • E’ stato introdotto un nuovo expression Language chiamato SpEL (Spring Expression Language) e può essere utilizzato durante la definizione della definizione XML e annotazione di  based bean definition.

  • Spring 3.0 supporta Web Services di tipo REST.

  • La formattazione dei dati non può essere resa più facile di così. Spring 3.0 supporta la formattazione basata sulle annotazione. Ora ad esempio possiamo usare le annotazioni @DateFimeFormat(iso=ISO.DATE) e @NumberFormat(style=Style.CURRENCY) le date ed i formati currency.

  • Da Spring 3.0 è supportato JPA 2.0.

 

CONFIGURAZIONE DI SPRING 3 MVC:


L’entry point di Spring 3.0 MVC è la DispatcherServlet. DispatcherServlet è una normale classe servlet che implementa la classe base HttpServlet. Pertanto abbiamo bisogno di configurarlo in web.xml.

Nel frammento di codice sopra, abbiamo configurato la DispatcherServlet nel file web.xml. Da notare che abbiamo mappato l’url pattern *.html con l’example DispatcherServlet. Così facendo ogni url avente il pattern .html chiamerà automaticamente lo Spring MVC Front Controller (appunto la nostra DispatcherServlet). Quindi tutte le richieste a file .html saranno gestite da tale  example Dispatcher Servlet.

Spring DispatcherServlet

Spring DispatcherServlet

Una volta che la DispatcherServlet è inizializzata, questa cercherà un file di nome
[servlet-name]-servlet.xml nel percorso WEB-INF della Web Application. Nell’esempio di sopra, il framework cercherà un file chiamato example-servlet.xml.

Si guardi il precedente diagramma dell’architettura. La WebApplicationContext specificata nel precedente diagramma è un’estensione della comune ApplicationContext con alcune caratteristiche extra necessarie per le Web Application. La WebApplicationContext è capace di risolvere temi ed è anche associrata ad una servlet corrispondente.

Nel prossimo articolo affronteremo la creazione di un primo progetto di Hello World che fà uso di Spring MVC.

2 thoughts on “Introduzione a Spring 3.X MVC

  1. Ciao,
    di recente, per questioni accademiche mi sto interessando a Spring MVC. Ti volevo chiedere: hai qualche altro bell’articolo riguardante proprio Spring MVC?

    Comunque, complimenti per la marea di articoli!

    • Ciao,
      è un po’ di tempo che non trovo tempo di scrivere sul blog. In realtà ho molti altri articoli già pronti, devo trovare il tempo di trasferirli online. Appena chiudo un paio di lavori prometto che aggiungerò nuovi contenuti su Spring MVC, Hibernate e Java Swing :-)

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">