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!