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.
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!