Logo_Spring_252x150In questa nuova serie di articoli vedremo come costruire e far evolvere una web application completa di classe enterprise utilizzando Spring Framework.

Prima di iniziare

Per prima cosa bisogna preparare un ambiente di lavoro adeguato, che consiste principalmente nel creare l’alberatura dei sorgenti e preparare il sistema di build. Come già visto in altri appuntamenti utilizzeremo Maven, che consente di avere diversi vantaggi:

  • tutte le fasi del build sono automatizzate e, se si rispettano le convenzioni, non è necessario configurare alcunché;
  • l’esecuzione dei test fa già parte del ciclo di build;
  • la gestione delle dipendenze è molto efficace.

Come già visto un articolo precedente è possibile far creare lo scheletro del progetto a Maven tramite gli archetypes, ma anche fare tutto “a mano” non è poi così difficile.
Creiamo quindi la directory che conterrà il progetto e copiamo queste righe nel file pom.xml all’interno di questa directory:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>it.artera.springtut</groupId>
  <artifactId>spring-3-tutorial</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>spring-3-tutorial</name>
  <url>https://blog.artera.net/</url>

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl-api</artifactId>
      <version>1.2</version>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>

In questo file di progetto non abbiamo volutamente incluso le dipendenze Spring ma solo quelle relative alle Servlet API e JSTL, in modo che si possa utilizzare per creare da zero le proprie web application.

Bisogna ora creare le directory per i sorgenti (java, web application, test):

 src
  +-- main
  |    +-- java
  |    +-- webapp
  |         +-- WEB-INF
  +-- test
       +-- java

Infine, occorre creare il file web.xml all’interno della directory src/webapp/WEB-INF, inserendo queste righe:

<?xml version="1.0" encoding="UTF-8"?>
  <web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
            version="2.5">
  <display-name>Web application</display-name>
</web-app>

Consigliato a questo punto di eseguire un commit dei sorgenti per tenere traccia dei progressi fatti. Una volta fatto, eseguiamo il primo build:

mvn package

Chi utilizza Netbeans potrà già aprire il progetto, mentre chi utilizza Eclipse può creare automaticamente i file di progetto tramite il comando:

mvn eclipse:eclipse

Sviluppi

Queste istruzioni sono valide per creare una web application “nuda”, senza particolari librerie o configurazioni, pronta per essere installata su un servlet container compatibile con le Servlet API 2.5. Utilizzeremo questa base per diversi progetti e articoli, assicuriamoci quindi di tenere una copia di queste istruzioni a portata di mano per i nostri esperimenti!

Nei prossimi articoli faremo un’analisi dell’applicazione e vedremo come utilizzare Spring per la sua realizzazione.

AGGIORNAMENTO (7/4/2011)

Il file pom.xml dell’articolo in origine conteneva un errore: la dipendenza corretta da configurare è javax.servlet:servlet-api:2.5 e non javax:javaee-api:6.0-SNAPSHOT. Il file pom.xml corretto è quindi quello riportato qui sopra.

Linkografia