Come fare una applicazione api Rest con codice Java usando Spring Boot

codice java app api restIn questo articolo vedremo come creare una semplice web application con codice Java, utilizzando Spring Boot come framework per lo sviluppo del back-end e dei servizi REST.

Che cos’è Spring Boot e la procedura di installazione

Spring Boot è un framework per lo sviluppo di applicazioni web basate su codice Java (precisamente su stack Java) che offre un ulteriore livello di astrazione rispetto all’utilizzo di Spring Framework. Soprattutto in termini di setup e configurazione del progetto e di gestione delle dipendenze. In questo modo, si ottiene una riduzione ulteriore dei tempi necessari per l’implementazione e la distribuzione delle nostre applicazioni.

Leggi anche Sistemi di virtualizzazione, i diversi approcci e i vantaggi

Spring Boot è provvisto di un suo ambiente di sviluppo dedicato chiamato “Spring Tool Suite” che è possibile scaricare dal sito https://spring.io/tools. Una volta effettuato il download, basta seguire la procedura di installazione.
Apri il programma e seleziona dal menù la voce “File” -> “New” ->”Other”-> “Spring Starter Project”. Poi, inserisci il nome del progetto, ad esempio “SpringBootAddlanceEx1” e le sue caratteristiche.

Spring Boot codice Java
Nel passaggio successivo scegli quali moduli “starters” vuoi inizialmente aggiungere come dipendenze. In particolare, se vuoi che il tuo servizio risponda ad una semplice chiamata GET, includi nel progetto il modulo Web che aggiunge una serie di pacchetti “base” necessari per lo sviluppo di una web application basata su Spring (spring-web, spring-mvc, jackson, ecc).

Se hai seguito fino alla fine questo processo (peraltro già guidato), avrai creato creato lo scheletro di un’applicazione in codice Java con la struttura indicata in figura.

codice java web app struttura
Come puoi vedere, nel progetto sono state create:

  • La classe SpringBootAddlanceEx1Application.java che rappresenta il punto di ingresso della tua applicazione
  • Le cartelle static e templates sotto al folder delle risorse src/main/resources
  • Un file properties

Se apri la classe SpringBootAddlanceEx1Application.java vedrai che il suo contenuto è il seguente:

 

 

package info.alessandrotesta.esempi;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class SpringBootAddlanceEx1Application {

 

          public static void main(String[] args) {

                        SpringApplication.run(SpringBootAddlanceEx1Application.class, args);

            }

}

 

Spring Boot permette che le app utilizzino la configurazione automatica, la scansione dei componenti e siano in grado di definire una configurazione aggiuntiva nella loro “classe di applicazione”. È possibile utilizzare un’unica annotazione @SpringBootApplication per abilitare queste tre funzionalità, ovvero:

@EnableAutoConfiguration: abilita il meccanismo di configurazione automatica di Spring Boot
@ComponentScan: abilita la scansione @Component sul pacchetto in cui si trova l’applicazione
@Configurazione: consente di registrare bean extra nel contesto o importare classi di configurazione aggiuntive

 

Il file pom.xml generato dalla procedura contiene le dipendenze del modulo Web richiesto:

<groupId>info.alessandrotesta.esempi</groupId>

            <artifactId>SpringBootAddlanceEx1</artifactId>

            <version>0.0.1-SNAPSHOT</version>

            <name>SpringBootAddlanceEx1</name>

            <description>Demo project for Spring Boot</description>

            <properties>

                        <java.version>1.8</java.version>

            </properties>

            <dependencies>

                        <dependency>

                                   <groupId>org.springframework.boot</groupId>

                                   <artifactId>spring-boot-starter-web</artifactId>

                        </dependency>

                        <dependency>

                                   <groupId>org.springframework.boot</groupId>

                                   <artifactId>spring-boot-starter-test</artifactId>

                                   <scope>test</scope>

                        </dependency>

            </dependencies>

            <build>

                        <plugins>

                                   <plugin>

                                               <groupId>org.springframework.boot</groupId>

                                               <artifactId>spring-boot-maven-plugin</artifactId>

                                   </plugin>

                        </plugins>

            </build>

 

                                  

Di seguito vedrai come il framework gestisce le chiamate statiche direttamente e come invece gestisce le chiamate attraverso un controller. Potrai quindi creare la tua risorsa statica, sarà sufficiente spostarti nel folder “static” e creare un nuovo file HTML che verrà chiamato “index.html” con una struttura minimale.

<html>

<head>

</head>

<body>

            <h1>SpringBootAddlanceEx1</h1>

            Esercizio n.1 chiamata statica

</body>

</html>

Questa in grassetto sarà la risposta statica del tuo servizio.

 

A questo punto sarai pronto per scrivere il tuo controller che posizionerai in un package chiamato “controllers” e che creerai all’interno del progetto. Avrà la struttura ereditata dal principale cioè: info.alessandrotesta.esempi.controllers. Questo il codice di HomeController.java:

 

package info.alessandrotesta.esempi.controllers;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HomeController {

    @RequestMapping(“/”)

    public String index() {

return “<h1>SpringBootAddlanceEx1</h1>\n” +

                        ”          Esercizio n.1 – chiamata controller”;

    }

}

Adesso sei pronto per mandare in esecuzione il servizio. Clicca con il tasto destro del mouse sulla classe SpringBootAddlanceEx1Application che, come hai visto, rappresenta il punto di partenza della tua applicazione, seleziona “Run As” e poi “Spring Boot App”.

L’applicazione parte utilizzando il server Tomcat incluso da Spring Boot in esecuzione sulla sua porta di default, la 8080.

Potrai quindi aprire il browser e richiedere la risorsa statica scrivendo
http://localhost:8080/index.html
ed apparirà la pagina statica:

Spring Boot codice java esercizio 1

 

e poi provare la richiesta al controller all’indirizzo
http://localhost:8080/
ed apparirà la risposta del controller:

Spring Boot codice java esercizio controller

 

Ti trovi bene a programmare in codice Java? Ecco vantaggi e svantaggi del framework Spring Boot

I vantaggi

  • Gestione delle dipendenze semplificata e senza conflitti di versione tramite i POM di avvio. Sarai in grado di configurare ed eseguire applicazioni Web e micro-servizi standalone in pochissimo tempo.
  • Puoi semplicemente assemblare l’artefatto jar fornito con un server applicazioni Tomact, Jetty o Undertow incorporato e l’applicazione è pronta per partire.
  • Nessuna configurazione basata su XML. Proprietà molto semplificate. I bean vengono inizializzati, configurati e cablati automaticamente.
  • Spring Initializer fornisce un generatore di progetti per renderti produttivo con un certo stack tecnologico sin dall’inizio. È possibile creare un progetto scheletro con supporto Web, accesso ai dati (datastore relazionali e NoSQL), cloud o supporto di messaggistica.

 

Leggi anche Servizi cloud, cosa sono e perché servono

Gli svantaggi

  • Aumento della dimensione binaria di distribuzione con dipendenze non utilizzate.
  • Perdita del controllo diretto, difficoltà a seguire il flusso quando le chiamate entrano in fondo al framework.
  • Spring Boot si adatta bene ai micro servizi. Gli artefatti di Spring Boot possono essere distribuiti direttamente nei contenitori Docker. In applicazioni di grandi dimensioni e monolitiche è meno adatto e soprattutto è importante tenere sotto controllo la moltitudine di componenti che vengono inclusi.

 

Articolo a cura di Alessandro Testa

Ti potrebbe interessare anche…

App per inviare file pesanti via mobile

App per inviare file pesanti via mobile

Hai bisogno di inviare file pesanti ma hai a disposizione solo un tablet o uno smartphone? Non disperarti, si può fare lo stesso! Scopri le app programmate appositamente per inviare documenti di grandi dimensioni senza il computer. 4 App per inviare file pesanti...

Programmatore PLC: chi è e cosa sviluppa

Programmatore PLC: chi è e cosa sviluppa

Continua il viaggio di AddLance Blog tra le varie professioni. Questa volta è il turno del programmatore PLC. Chi è? Di cosa si occupa esattamente? I programmatori PLC sono dei tecnici incaricati di progettare, sviluppare e collaudare software applicativi per impianti...

7 Utili alternative a Drop-box

7 Utili alternative a Drop-box

Sei un professionista e hai una paura matta di perdere i dati che ti servono per lavorare? Sappi che puoi andare oltre quando li archivi in sicurezza. Ti diciamo 7 utili alternative a Drop-box che possono cambiarti la vita: così puoi organizzarti meglio da subito!...

Commenti

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Cos’è AddLance?

AddLance è un servizio gratuito che ti permette di trovare l’aiuto che cerchi. Hai bisogno di un logo, di un sito web, di testi, traduzioni, consulenze legali o altro? Su AddLance ottieni gratis i contatti dei migliori professionisti italiani.

Iscriviti alla Newsletter

Share This