O Spring e o Spring Boot não são ferramentas concorrentes, mas sim complementares. Na verdade, o Spring Boot foi criado com base no framework Spring, pelo que compreender a diferença tem menos a ver com escolher um em vez do outro e mais com saber o que cada um oferece.
Primeiro, vamos analisar dois termos que surgem frequentemente ao avaliar frameworks de desenvolvimento: não prescritivo e prescritivo.
Frameworks não prescritivos
Um framework não prescritivo dá aos programadores a liberdade de estruturar tudo como entenderem. Esta abordagem oferece a máxima flexibilidade e coloca mais controlo nas mãos da equipa de desenvolvimento. No entanto, tenha em atenção que também exige mais conhecimentos especializados e mais trabalho inicial para configurar e executar uma aplicação.
Frameworks prescritivos
Um framework prescritivo estabelece um caminho claro e bem definido que funciona de forma adequada para a maioria das equipas na maioria das situações. Reduz a fadiga de decisão, promove a consistência entre bases de código e ajuda novos programadores a familiarizarem-se rapidamente. Embora a contrapartida seja menos flexibilidade, para a maioria dos cenários modernos de desenvolvimento de aplicações, esta troca compensa.
O framework Spring é totalmente configurável e não prescritivo, o que significa que não impõe uma forma específica de criar a sua aplicação. Essa flexibilidade é poderosa, mas tem uma contrapartida: os programadores têm de tomar muitas decisões antecipadamente e escrever uma quantidade significativa de código de configuração antes de poderem começar a criar a aplicação propriamente dita.
O Spring Boot adota uma abordagem diferente. Por ser prescritivo, toma decisões predefinidas em seu nome para que possa concentrar-se em escrever a lógica da aplicação, em vez da configuração. Foi concebido para oferecer rapidez e simplicidade, ao permitir que os programadores passem do zero a uma aplicação em execução em muito menos tempo do que se trabalhassem apenas com o framework Spring.
A capacidade distintiva que torna a abordagem prescritiva do Spring Boot tão eficaz é a configuração automática. Em vez de exigir aos programadores que liguem manualmente cada componente de uma aplicação, o Spring Boot deteta automaticamente o que está no classpath e configura a aplicação em conformidade. Essa é uma das principais razões pelas quais as equipas de desenvolvimento recorrem ao framework Spring Boot quando precisam de avançar rapidamente sem comprometer a qualidade.