Trace Id is missing
Passa al contenuto principale
Persone che lavorano in ufficio allo schermo del portatile

Che cos'è Spring Boot di Java?

Spring Boot è il popolare strumento basato su Java per lo sviluppo di microservizi e app Web.

Una persona che guarda lo schermo di un portatile e usa una tastiera esterna con mouse

Che cos'è Spring Boot?

Java Spring Boot è uno strumento open source che semplifica l'utilizzo di framework basati su Java per creare microservizi e app Web. Per qualsiasi definizione di Spring Boot bisogna iniziare con Java, uno dei linguaggi di sviluppo e una delle piattaforme di computing più popolari per lo sviluppo di app. Gli sviluppatori di tutto il mondo iniziano il loro viaggio nella codifica partendo da Java. Flessibile e intuitivo, Java è il preferito degli sviluppatori per un'ampia varietà di app: app per social media, Web, gaming, ma anche applicazioni aziendali e di rete.

Java e il framework Spring

Java può essere facile da capire e più semplice da imparare rispetto ad altri linguaggi, ma creare, eseguire il debug e distribuire le app Java è diventato incredibilmente complicato. Ciò dipende dal numero esponenziale di variabili cui gli sviluppatori moderni devono far fronte quando sviluppano app Web o app per dispositivi mobili per le tecnologie moderne comuni, come app per streaming di musica o pagamenti per dispositivi mobili. Uno sviluppatore che scrive un'app line-of-business di base ora deve occuparsi di più librerie, plugin, log degli errori e della gestione di librerie, integrazioni con servizi Web e più linguaggi come C#, Java, HTML e altri. Comprensibilmente, vi è un'insaziabile richiesta di strumenti in grado di semplificare lo sviluppo di app Java, facendo risparmiare tempo e denaro agli sviluppatori.

Inserisci framework applicazioni, i grandi volumi di codice prescritto che gli sviluppatori possono usare e aggiungere al proprio codice, in base alle necessità. Questi framework alleggeriscono il carico dello sviluppatore per quasi tutte le esigenze, che stia sviluppando app Web e app per dispositivi mobili o lavorando con desktop e API. I framework rendono la creazione di app più veloce, più semplice e più sicura fornendo codice riutilizzabile e strumenti che consentono di tenere insieme i diversi elementi di un progetto di sviluppo software.

Ecco quando serve Spring: Spring è un progetto open source che offre un approccio modulare semplificato per creare app con Java. La famiglia di progetti Spring  è nata nel 2003 come risposta alle difficoltà dello sviluppo di Java e fornisce supporto allo sviluppo di app Java. Il nome Spring, da solo, in genere fa riferimento al framework dell'applicazione stesso o all'intero gruppo di progetti o moduli. Java Spring Boot è un modulo specifico creato come estensione del framework Spring.

Quindi, con questo background sul modo in cui il framework Spring, Spring Boot e Java interagiscono, possiamo dire che Spring Boot è lo strumento che semplifica e velocizza lo sviluppo di app Web e microservizi all'interno del framework Java, Spring.

A volte, poiché il linguaggio e/o la piattaforma è Java, viene definito "Java Spring Boot," "framework Java Spring" o "framework Spring Boot." Tuttavia, poiché esistono altri framework di terze parti per Java, ad esempio Play e Hibernate, è più preciso parlare di "Spring" e "Spring Boot."

Per una descrizione generale delle nozioni di base di Java, consulta l'articolo Che cos'è Java?

Qual è la differenza tra Spring e Spring Boot?

Come accennato in precedenza, Spring è un framework di app open source basato su Java che include molti progetti più piccoli. Altri noti progetti Spring includono Spring Data, Spring Cloud e Spring Security, solo per citarne alcuni. Per comprendere la differenza tra Spring Boot e Spring, è importante tenere presente che, anche se potrebbero esserci differenze nelle funzionalità di base, sta tutto nella famiglia Spring.

Per comprendere appieno le differenze tra Spring e Spring Boot, è necessario definire prima alcuni termini chiave.

Una persona che guarda nel portatile.
Una donna che guarda nel tablet.

Cosa sono i microservizi?

I microservizi sono un approccio all'architettura di sviluppo software. "Micro" nel termine microservizi si riferisce al codice distribuito in piccole parti o componenti gestibili e ogni "servizio" o funzione di base viene creato e distribuito indipendentemente dagli altri servizi. I componenti indipendenti interagiscono e comunicano tramite documenti API prestabiliti denominati contratti. La scalabilità ridotta e il relativo isolamento di questi microservizi presentano molti vantaggi. Ad esempio, trattandosi di un'architettura distribuita e ad accoppiamento debole, l'intera app non si interrompe in caso di problemi per un componente. Altri vantaggi sono una maggiore produttività, una manutenzione più semplice, un migliore allineamento aziendale e una maggiore tolleranza di errore.

Che cos'è l'inserimento delle dipendenze?

L'inserimento delle dipendenze (DI) è una tecnica di progettazione usata per ottenere l'inversione del controllo (IoC). Nella programmazione orientata a oggetti come Java, gli oggetti che dipendono da altri oggetti sono denominati dipendenze. In genere, l'oggetto ricevente o dipendente viene chiamato client mentre quello da cui dipende il client è chiamato servizio. L'inserimento delle dipendenze passa quindi il servizio al client o "inserisce" la dipendenza usando il codice denominato injector. DI elimina la necessità per il client di specificare quale servizio usare, l'injector funziona per il client.

Una persona che guarda nel portatile e nel monitor
Una donna che indossa un visore VR

Che cos'è la convenzione sulla configurazione?

La convenzione sulla configurazione, talvolta chiamata codifica per convenzione, è un concetto usato nei framework applicazioni per ridurre il numero di decisioni che uno sviluppatore deve prendere. Rispetta il principio "Don't Repeat Yourself" per evitare di scrivere codice ridondante. La codifica per convenzione si impegna a mantenere la flessibilità consentendo allo sviluppatore di scrivere codice solo per gli aspetti non convenzionali dell'app che sta creando. Quando il comportamento desiderato dell'app corrisponde alle convenzioni stabilite, l'app verrà semplicemente eseguita per impostazione predefinita senza dover scrivere file di configurazione. Lo sviluppatore dovrà scrivere in modo esplicito i file di configurazione solo se il comportamento desiderato si discosta dalla "convenzione."

Framework Spring e Spring Boot

Poiché Spring Boot si basa sui vantaggi del framework Spring, non è tanto questione di "scegliere" se usare Spring o Spring Boot, bensì di capire come "usarli insieme". Non bisogna scegliere tra Spring o Spring Boot; Spring e Spring Boot vanno di pari passo:
piano di supporto a livello di organizzazione
Spring Spring Boot
Che cos'è?

Un framework di applicazioni Web open source basato su Java.

Un'estensione o un modulo basato sul framework Spring.

Qual è la sua funzione?

Fornisce un ambiente flessibile completamente configurabile che usa strumenti e librerie di codice predefinito per creare app Web personalizzate ad accoppiamento debole.

Consente di creare applicazioni Spring autonome che possono essere eseguite immediatamente senza la necessità di annotazioni, configurazione XML o scrittura di altro codice.

In quali casi si usa?

Usa Spring quando vuoi:

  • Flessibilità.
  • Un approccio non categorico.*
  • Rimuovere dipendenze dal codice personalizzato.
  • Implementare una configurazione unica.
  • Sviluppare applicazioni aziendali.

Usa Spring Boot quando vuoi:

  • Semplicità d'uso.
  • Un approccio categorico.*
  • Ottenere app di qualità in esecuzione rapidamente e ridurre il tempo necessario per lo sviluppo.
  • Evitare di scrivere codice boilerplate o configurare XML.
  • Sviluppare API REST.
Qual è la sua funzionalità principale?

Inserimento delle dipendenze

Autoconfigurazione

Dispone di server incorporati?

No, in Spring dovrai configurare i server in modo esplicito.

Sì, Spring Boot dispone di server HTTP integrati come Tomcat e Jetty.

Come si configura?

Il framework Spring offre flessibilità, ma la sua configurazione deve essere eseguita manualmente.

Spring Boot configura Spring e altri framework di terze parti automaticamente in base al principio predefinito della "convenzione sulla configurazione".

È necessario sapere come usare XML?

In Spring, è necessario conoscere la configurazione XML.

Spring Boot non richiede la configurazione XML.

Sono presenti strumenti CLI per lo sviluppo/test di app?

Il framework Spring da solo non fornisce strumenti CLI per sviluppare o testare le app.

Come modulo di Spring, Spring Boot dispone di uno strumento CLI per sviluppare e testare le app basate su Spring.

Funziona con un approccio categorico o non categorico?

Non categorico*

Categorico*

*Approccio del framework categorico e non categorico

Anche se il termine "categorico" può sembrare vagamente negativo, sia l'approccio categorico di Spring Boot che il framework Spring non categorico offrono dei vantaggi.

Approccio categorico

Un approccio categorico presuppone che esiste un metodo notevolmente più semplice rispetto a tutti gli altri. Per impostazione predefinita, il software limita i progettisti, invitandoli a eseguire le operazioni in questo modo previsto.

Offre un percorso ben tracciato, una procedura consigliata che funzionerà per la maggior parte delle persone nella maggior parte delle situazioni. L'app è scritta in modo strettamente conforme a queste procedure consigliate e alle convenzioni diffuse. Un approccio categorico semplifica notevolmente la collaborazione e l'assistenza per un progetto di codifica. Gli altri sviluppatori che già conoscono tale framework avranno familiarità immediata con la nuova app e potranno iniziare subito a usarla.

Approccio non categorico

Viene adottato un approccio non categorico se tutte le soluzioni richiedono approssimativamente la stessa quantità di lavoro o complessità. Presuppone che non ci sia nessun metodo corretto per arrivare a una soluzione per un problema. Fornisce invece strumenti flessibili che possono essere usati per risolvere il problema in molti modi. I framework non isolati hanno il vantaggio di offrire una grande flessibilità nello sviluppo e offrono un maggiore controllo agli sviluppatori. Lo svantaggio principale con una flessibilità così elevata è che lo sviluppatore ha più decisioni da prendere e potrebbe dover scrivere più codice perché il framework è così aperto e categorico.

Funzionalità e vantaggi di Spring Boot

Vediamo infine la parte interessante delle funzionalità di base offerte da Java Spring Boot oltre il framework Spring. Spring Boot offre un percorso più semplice e rapido per impostare, configurare ed eseguire le app. Semplifica la configurazione necessaria per la maggior parte delle app basate su Spring. Gli sviluppatori possono iniziare subito a usare Spring Boot senza dover apprendere il framework Spring sottostante.

Una persona seduta su una sedia che guarda sullo schermo del desktop

Ecco come le funzionalità di Spring Boot semplificano le attività di programmazione Java. Alcune funzionalità principali di Spring Boot sono:

Vantaggi di Spring Boot

Spring Boot:

Esercitazioni su Java Spring Boot

Se hai già familiarità con la creazione di app con il framework Spring, sarà facile imparare a usare Spring Boot con le esercitazioni, gli elementi di base del progetto e la documentazione forniti in questa sezione. Ma ecco alcune buone notizie se hai fretta di usare Spring Boot ma non conosci ancora questo framework. È possibile imparare (e iniziare) a usare Spring Boot prima di apprendere il framework Spring, perché man mano che si procede si acquisiranno molti dei concetti fondamentali del framework. Anche se questo non ti insegnerà tutto quello che c'è da sapere sul framework, ti offrirà un buon punto di partenza se decidi di impararlo in un secondo momento.

Un altro vantaggio di Spring Boot è che, oltre a rendere lo sviluppo di app molto più veloce ed efficiente, consente anche di usare altre funzionalità di Spring, ovvero Spring Data, Project Reactor e Spring Security.

Una persona che parla su un portatile con le cuffie
Detto questo, sarà più facile usare la prima esercitazione di Spring Boot se impari prima di tutto i concetti di base dell'inserimento delle dipendenze e dell'inversione del controllo nel framework Spring. Ecco una panoramica generale:

Inserimento delle dipendenze

  • Basato su XML, ovvero <beans/> e <namespace:*/>.
  • Basato su annotazione, ovvero @Component, @Autowired, @Inject.
  • Basato su Java, ad esempio classi @Configuration, metodi @Bean.

Inversione del controllo (IoC)

  • ApplicationContext: interfaccia radice che funge da contenitore Spring IoC.
  • BeanFactory: interfaccia per accedere al contenitore Spring.
  • Beans: gli oggetti di cui è stata creata un'istanza, assemblati e gestiti da ApplicationContext.

Esercitazioni su Java Spring Boot per principianti

Dopo aver appreso le nozioni di base, se vuoi creare e distribuire app Spring Boot su larga scala, prova a controllare il servizio completamente gestito Azure Spring Cloud di Microsoft e VMware. In alternativa, inizia subito con questa esercitazione su come proteggere le app Spring Boot con certificati TLS/SSL.

Creare e proteggere un'app Java

Creare un'app Java con Spring Initializr usando Spring Boot starter per Microsoft Entra ID (in precedenza Azure Active Directory).

Distribuisci la prima app in Azure Spring Cloud

Scopri come creare, effettuare il provisioning e monitorare una semplice app Spring Boot compilata con Spring Initializr.

Crea un microservizio Spring Boot semplice

Crea e distribuisci un microservizio semplice, quindi impara ad aggiungervi tecnologie Spring Cloud.

Altri elementi di base di Spring Boot

Aggiungi funzionalità di archiviazione, sicurezza, autenticazione e insieme di credenziali delle chiavi alle app Spring Boot.

Domande frequenti

  • Spring Boot è un framework Web Java open source basato su microservizi offerto da Spring, particolarmente utile per gli ingegneri software che sviluppano app Web e microservizi.

  • "Spring Boot in Java" è un altro modo per parlare di "Java Spring Boot": i due termini possono essere usati in modo intercambiabile. Java è il linguaggio e la piattaforma, Spring è il framework applicazioni basato su Java e Spring Boot è un'estensione del framework Spring, con alcuni vantaggi aggiuntivi.

  • Spring Boot ha la funzionalità del framework Spring generale, ma non richiede la conoscenza di Spring. Uno sviluppatore può avviare un'app in meno tempo perché gli attributi Spring Boot vengono configurati automaticamente e l'approccio categorico rimuove gran parte del codice boilerplate e della configurazione coinvolti nello sviluppo e nella distribuzione di app Spring.

  • Sì, come accennato in precedenza, Spring Boot è particolarmente utile per un approccio basato su microservizi all'architettura di sviluppo software. I microservizi sono un modo diffuso per creare piccoli team autonomi che possono lavorare in modo indipendente, i microservizi funzionano solo nel back-end.

  • La riduzione dei tempi di sviluppo, l'aumento della produttività e la facilità d'uso sono solo alcuni dei vantaggi dello sviluppo di app Spring Boot.

  • Sono disponibili numerose esercitazioni, guide introduttive e documentazione sul sito Web di Spring , nonché elementi di base e documentazione di Spring Boot di Microsoft Azure. Per iniziare subito a distribuire app Spring Boot, consulta il webinar Accelera le applicazioni Spring Boot nel cloud su larga scala.

Possiamo iniziare quando vuoi a configurare il tuo account Azure gratuito