Spring e Spring Boot non sono strumenti concorrenti, ma complementari. Spring Boot è infatti costruito sopra il framework Spring, quindi capire la differenza non significa tanto scegliere l’uno o l’altro, quanto sapere cosa porta ciascuno.
Per prima cosa, analizziamo due termini che ricorrono spesso quando si valutano i framework di sviluppo: "non prescrittivo" e “prescrittivo”.
Framework non prescrittivi
Un framework non prescrittivo offre agli sviluppatori la libertà di strutturare gli elementi in base alle esigenze. Ciò offre la massima flessibilità e consente un maggiore controllo nelle mani del team di sviluppo. Si noti, tuttavia, che richiede anche più esperienza e più attività iniziali per configurare ed eseguire un'applicazione.
Framework prescrittivi
Un framework prescrittivo stabilisce un percorso chiaro e ben tracciato che funziona in modo appropriato per la maggior parte dei team nella maggior parte delle situazioni. Riduce la fatica decisionale, favorisce la coerenza tra le codebase e aiuta i nuovi sviluppatori a prendere rapidamente dimestichezza. Anche se il compromesso è una minore flessibilità, nella maggior parte degli scenari di sviluppo di applicazioni moderne è uno scambio che vale la pena fare.
Il framework Spring è completamente configurabile e non prescrittivo, il che significa che non impone un modo specifico di creare l’applicazione. Questa flessibilità è potente, ma ha un compromesso: gli sviluppatori devono prendere molte decisioni in anticipo e scrivere molto codice di configurazione prima di poter iniziare a creare l’applicazione vera e propria.
Spring Boot adotta un approccio diverso. Essendo prescrittivo, prende decisioni predefinite al tuo posto, così puoi concentrarti sulla scrittura della logica applicativa invece che sulla configurazione. È progettato per offrire velocità e semplicità, portando gli sviluppatori da zero a un’applicazione funzionante in molto meno tempo rispetto all’uso del solo framework Spring.
La funzionalità distintiva che rende così efficace l’approccio prescrittivo di Spring Boot è l’autoconfigurazione. Invece di richiedere agli sviluppatori di collegare manualmente ogni componente di un’applicazione, Spring Boot rileva automaticamente ciò che è presente nel classpath e configura di conseguenza l’applicazione. Questo è uno dei motivi principali per cui i team di sviluppo scelgono il framework Spring Boot quando devono muoversi rapidamente senza tagliare gli angoli.