3 – Progetto di Hello World in Spring gestito con Maven

In questo tutorial vedremo come creare una semplicissima applicazione console di Hello World in Spring che fà uso di Maven per il processo di build usando STS\Eclipse come ambiente di sviluppo (STS è la versione di Eclipse fornta dal team di Spring avente i plugin di Spring e di Maven preinstallati, chi usa Eclipse eventualmente dovrà installare i plugin manualmente).
I passi da seguire per creare il progetto sono i seguenti:
  1. Aprire STS\Eclipse.
  2. Premere “Ctrl + N” per creare un nuovo progetto.
  3. Aprire l’elemento Maven e selezionare “Maven Project“. Clickate Next.
  4. Nella prima finestra dello wizard troveremo spuntato solo l’opzione “Use default Workspace location“, lasciare inalterate tali opzioni e clickate su Next.
  5. Nella seconda finestra dello wizard lasciate il default ArtifactId settato su “maven-archetype-quickstart” e clickate su Next.
  6. Inserite i seguenti parametri:Group Id: org.andrea.myexample
    Artifact  Id: myspringhelloworld
    Version: lasciate 0.0.1-SNAPSHOTClickate su Finish.
  7. Aprite il file pom.xm e clickate sul tab “Dependenciesper aggiungere le seguenti dipendenze di org.springframework: spring-core, spring-bean, spring-context, spring-context-support).

Abbiamo così creato un nuovo progetto che fà uso di Maven per la gestione del processo di building e vi abbiamo aggiunto le dipendenze del framework Spring necessarie per il funzionamento del nostro progetto.

Andiamo ora ad implementare effettivamente il nostro progetto Hello World andando a scrivere il codice.

All’interno della cartella di STS con nome /src/main/java troviamo il package org.andrea.myexample.myspringhelloworld che contiene una classe chiamata App.java, eliminiamo pure tale classe.

 

Per completezza di seguito è riportato l’intero codice del file pom.xml (potete copiarlo ed incollarlo):

All’interno di tale package creaiamo una classe dandogli nome HelloWorld.java:

Nello stesso package create un’altra classe chiamata MainApp.java:

Ci sono due punti importanti da analizzare all’interno nella classe MainApp.java che rappresenta la classe contenente il metodo main(), quindi la classe principale che conterrà il metoto eseguito per primo:

Il primo passo è quello in cui viene creato un oggetto ApplicationContext.

ApplicationContext è un’interfaccia che fornisce la configurazione per un’applicazione. Tale configurazione è in sola lettura fintanto che l’applicazione è in esecuzione ma può essere ricaricata se l’implementazione usata lo permette.

Per maggiori informazioni leggere questo link:
http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/context/ApplicationContext.html

Nel nostro caso per creare tale oggetto stiamo usando la seguente implementazione di tale interfaccia: ClassPathXmlApplicationContextTale API carica un file di configurazione dei bean usati nel nostro progetto ed eventualmente, basandosi su tale API, si occupa di creare ed inizializzare tutti questi oggetti (come ad esempio i bean mensionati in tale file di configurazione).

  1. Nel nostro progetto tale file di configurazione sarà rappresentato da un file XML chiamato: Beans.xml

  2. Il secondo passo è quello di recuperare un bean corrispondente ad un oggetto HelloWorld usando il metodo getBean() sul context creato.Tale metodo usa il bean ID per ritornare un oggetto generico che alla fine può essere castato all’actual object HelloWorld. In pratica stiamo recuperando l’oggetto associato al bean avente id “helloWorld” (dichiarato nel file Beans.xml).Una volta che abbiamo l’oggetto possiamo usarlo.

Il prossimo passo è quello di creare questo file di configurazione dei bean: si tratta di un file XML che agisce come cemento che lega tra loro i bean insieme definendo come interagiscono tra loro.

Mettiamo tale file nella cartella di STS\Eclipse: “/src/main/java” (allo stesso livello del nostro package)

In genere gli sviluppatore chiamano tale file con il nome di Beans.xml ma volendo si può dare un nome qualsiasi a tale file.

Il file Beans.xml è usato per assegnare un ID univoco ad ogni bean e per controllare la creazione di oggetti che hanno valori differenti senza impattare sui file sorgente. Ad esempio nel file di configurazione di tale progetto possiamo passare un qualsiasi valore per la variabile “message” potendo così stampare differenti valodri di mesage senza avere nessun impatto sui file HelloWorld.java e MainApp.java

Questo il codice del file Beans.xml:

Analizziamo il significato di tale file: quando l’applicazione Spring viene caricata in memoria, il Framework fà uso di tale file di configurazione per creare tutti i bean definiti in tale file e per assegnargli un ID univoco (come definito all’interno del tag <bean>).

Possiamo usare il tag <property> per passare i valori di più variabili nel momento della creazione di tale oggetto.

Nel nostro progetto ad esempio, quando l’applicazione viene avviata succede che viene creato l’oggetto HelloWorld avente id=”helloWorld” ed iniettiamo il valore: “Hello World!” alla stringa message in tale classe.

Quì sotto un’immagine dell’organizzazione del progetto:

2-HelloWorldSpring1

ESECUZIONE DEL PROGRAMMA:

Ora che abbiamo creato sia i nostrifile sorgenti sia il nostro file di configurazione dei bean, siamo pronti per compilare ed eseguire il programma.Per fare ciò selezionate la classe MainApp.Java, tasto destro del mouse —> Runs As —> Java Application

ed otterremo il seguente messaggio di output nel tab Console di STS\Eclipse: Your Message : Hello World!

2 thoughts on “3 – Progetto di Hello World in Spring gestito con Maven

  1. Howdy! This is my first visit to your blog! We are a team of volunteers
    and starting a new project in a community in the same niche.
    Your blog provided us useful information to work on. You
    have done a outstanding job!

    • Thank you for your kindest words !!!

      It seems to me that you are not from Italy and that italian is not your language, doyou able to figure out just by using my code snippets ? :-)

      So continue to follow, I am migrating an old version of my blog and I have alredy prepared approximately 100 other articles that I am inserting every day (a bit ‘at a time) about: Spring, Spring MVC and Hibernate :-)

      These articles will be in italian because are in the form of guides and this is something of which there is not a lot of documentation in Italian…but…in the future….I am thinking to write also something in English language (maybe new content about some project)

      If you want updates on the activities of the blog you can follow my twitter account: https://twitter.com/scorejava

      Tnx so much
      Andrea Nobili

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="">

p5rn7vb