Tra le librerie da noi utilizzate in molti progetti, a meritare sicuramente una menzione è Spring, framework open source per lo sviluppo di applicazioni su piattaforma Java. Una soluzione solida, modulare e versatile che permette di gestire in maniera efficiente il complesso mondo dello sviluppo di applicazioni enterprise.

A fianco di Spring framework è stato costruito Spring Boot, progetto Spring che ha come motto “Convention over Configuration”, ovvero l’avere nel proprio applicativo una configurazione ridotta che consenta di risparmiarsi tutte le configurazioni dettate dalle convenzioni.

Spring Boot: vantaggi e come iniziare

Spring Boot definisce delle configurazioni di base per l’uso del framework, le librerie di terze parti e le dipendenze tra di esse. Oltre a sposare perfettamente la metodologia 12 factor application, in generale utilizza dei paradigmi molto moderni di sviluppo e può essere utilizzato per creare microservizi, applicativi batch o desktop con Javafx.

Più facile a dirsi che a farsi, Spring Boot lo si capisce provandolo anche grazie all’ottimo punto di partenza: Spring Initializr. Qui è sufficiente compilare un semplice form dove vengono richieste le informazioni basilari sulla propria applicazione, scegliere attraverso la voce “Dependencies” quali funzionalità si vogliono aggiungere alla propria applicazione e premere “Generate”. Verrà creato e scaricato immediatamente uno zip contenente il codice sorgente base della propria applicazione; fantastico, vero?

Aprendo il progetto scaricato nell’IDE preferito (IntelliJ, Netbeans, Eclipese, …) si potrà partire subito con il coding, senza perdere tempo nella creazione del progetto base, nella configurazione del tool di building e nella scrittura di classi entrypoint.

sviluppatore davanti al monitor

Maven, Gradel e JAR

Lanciando la compilazione tramite Maven o Gradel – in base alla scelta fatta su Spring Initializr-, il sistema di building è già configurato in automatico per produrre quello che viene chiamato un Fat o Uber JAR, ossia un JAR contenente tutto il necessario (librerie incluse) per far girare la nostra applicazione dove vogliamo. Questo tipo di JAR è molto comodo perché facile e veloce da distribuire, copiare e lanciare; basta un semplice “java -jar applicazione.jar” per eseguire la nostra applicazione. Il contro di questo tipo di JAR è il peso perché può arrivare a diverse decine di Megabyte che possono richiedere del tempo per il trasferimento su reti non velocissime. Esiste tuttavia l’alternativa Thin JAR (JAR leggero) attivabile con queste poche righe di codice:

Per Maven:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- The following enables the "thin jar" deployment option. -->
<dependency>
<groupId>org.springframework.boot.experimental</groupId>
<artifactId>spring-boot-thin-layout</artifactId>
<version>1.0.28.RELEASE</version>
</dependency>
</dependencies>
</plugin>

Per Gradel:

buildscript {
ext {
//...
thinPlugin = 'org.springframework.boot.experimental:spring-boot-thin-gradle-plugin'
thinVersion = '1.0.28.RELEASE'
}
//...
dependencies {
//...
classpath("${thinPlugin}:${thinVersion}")
}
}

//elided
apply plugin: 'maven'
apply plugin: 'org.springframework.boot.experimental.thin-launcher'

Questa modifica andrà a creare un JAR da pochi KB con al suo interno un client per il download delle dipendenze al primo lancio dell’applicazione. Conseguentemente la prima volte che andremo ad eseguire il nostro applicativo dovremo aspettare svariati minuti per veder partire il tutto, ma dai lanci successivi i tempi torneranno alla normalità.

Hai un software scritto in Spring Boot e desideri mantenerlo o farlo evolvere? Contattaci senza impegno!