O que é Spring Boot?

SOUTH SYSTEM
5 min readNov 6, 2023

Artigo desenvolvido por Eric Assumpção — Dev FullStack na South System.

Para quem ainda não ouviu falar, o Spring Boot é uma ferramenta que nasceu a partir do Spring, um framework desenvolvido para a plataforma Java baseado nos padrões de projetos, inversão de controle e injeção de dependência.

Embora o Spring framework tenha sido criado justamente com o intuito de simplificar as configurações para aplicações web, ele não atendeu 100% as expectativas do mercado ao ser lançado, já que as configurações seguiam grandes e complexas demais.

Sendo assim, um novo projeto foi acrescentado ao framework para mudar esse jogo e abstrair toda a complexidade que uma configuração completa pode trazer: o Spring Boot.

Apresentando um modelo de desenvolvimento mais simples e direto, esse framework foi determinante para que o uso do ecossistema Spring decolasse.

No geral, ele fornece a maioria dos componentes necessários em aplicações em geral de maneira pré-configurada, possibilitando uma aplicação rodando em produção rapidamente, com o esforço mínimo de configuração e implantação.

Em outras palavras, podemos entender o Spring Boot como um template pré-configurado para desenvolvimento e execução de aplicações baseadas no Spring.

Por que usar o Spring Boot?

Como dissemos anteriormente, o maior ganho dessa ferramenta é a simplificação na hora de desenvolver aplicações Java. Mas essa é apenas a pontinha do iceberg.

Na prática, essa ferramenta oferece série de vantagens, como, por exemplo, auxiliar nas configurações iniciais necessárias para que os desenvolvedores possam, enfim, começar a codificar, além de contribuir com projetos mais ágeis e organizados.

Ou seja: com o Spring Boot, você não precisa temer ter que gastar seu tempo desenvolvendo uma aplicação do zero, já que receberá a maioria dos recursos necessários.

Para cumprir com esse propósito, o framework se baseia em quatro princípios centrais:

  1. Oferecer uma experiência de início de projeto rápida e direta;
  2. Apresentar uma visão opinativa e flexível sobre o modo como os projetos Spring devem ser configurados;
  3. Fornecer requisitos não funcionais pré-configurados;
  4. Não prover geração de código e zerar a necessidade de arquivos XML.

Os componentes-base do Spring Boot

O Spring Boot possui três componentes principais que fazem toda a “magia” apresentada acima acontecer.

Na sequência, explicaremos qual é a função de cada uma delas, para você ficar mais inteirado sobre esse universo:

Spring Boot Starter

Sua função principal é combinar as várias dependências advindas de um projeto Spring Boot em uma única dependência, retirando-se a necessidade de configuração de múltiplas dependências no Maven ou no Gradle.

Por exemplo: para criar uma aplicação Spring web “convencional”, nós precisaríamos de, pelo menos, as seguintes dependências:

  • Spring Core;
  • Spring Web;
  • Spring Web MVC;
  • Servlet API.

Adicionalmente, ainda precisaríamos definir e configurar as dependências relativas ao servidor web a ser utilizado, como o Tomcat.

Como deu para notar, esse é um processo bem trabalhoso. Sendo assim, Spring Boot utiliza os inicializadores (starters) a fim de diminuí-lo significativamente.

Se estivermos falando de uma aplicação web, por exemplo, estas dependências podem ser resumidas a apenas uma: o spring-boot-starter-web.

Não precisamos nem dizer o quanto isso torna o processo de definição de componentes da aplicação muito mais simples, né?

Spring Boot AutoConfigurator

É responsável por gerenciar o processo de configuração de uma aplicação Spring Boot, fornecendo as configurações-padrão e fazendo a fusão destas com as possíveis configurações personalizadas.

Por exemplo: se estivermos utilizando o starter para aplicações web, é o Spring Boot AutoConfiguration quem vai fornecer as diretivas para resolução de views e resolvers.

Em uma aplicação Spring Boot, o AutoConfigurator pode ser visto através da utilização da tradicional annotation @SpringBootApplication, que fica acima do método de inicialização da aplicação.

Internamente, a annotation @SpringBootApplication é uma combinação das tradicionais annotations @Configuration, @ComponentScan e @EnableAutoConfiguration do Spring.

Spring Boot Acutator

Completando a lista, temos o Spring Boot Actuator, que possui duas funções principais: o provisionamento de endpoints e a obtenção de métricas da aplicação.

Por padrão, o Spring Boot AutoConfigurator define que o servidor web deve ser exposto em localhost na porta 8080. Quem faz o provisionamento desta configuração no servidor web é o Actuator.

Como startar o Spring Boot?

Para começar a usar o Spring Boot, você utilizará o Initializr!

Agora que você já sabe mais sobre o Java Spring Boot, chegamos à pergunta que não quer calar: como começar a utilizar este framework?

Bom, para iniciar a criação do projeto, recomendamos o uso de um facilitador disponibilizado pelo próprio Spring: o Spring Initializr. Com ele, é possível habilitar os módulos desejados em seu projeto em poucos cliques.

No final, a página irá gerar um projeto Maven ou Gradle pré-configurado e com todos os componentes solicitados especificados, bastando ao desenvolvedor começar a trabalhar com a codificação.

Para usar o Spring Initializr, basta acessar https://start.spring.io/ e inserir as informações necessárias sobre projeto, como:

  • Tipo de projeto que será utilizado (Maven ou Gradle);
  • Linguagem que será usada no desenvolvimento back-end;
  • Qual a versão do Spring Boot você pretende utilizar;
  • Grupo da aplicação;
  • Lista das dependências que o projeto irá usar.

Após finalizar o preenchimento, basta clicar no botão “Generate Project” para o Spring Initializr realizar a configuração e download de projeto em formato zip.

Na sequência, será preciso descompactar o arquivo e importá-lo para o IDE ou Editor de Código Fonte da sua preferência, para que você possa enfim iniciar o desenvolvimento.

Aqui, uma boa alternativa é utilizar o Spring Tool Suite, um IDE que facilita o uso de Spring de modo geral e é uma mão na roda para criar projetos com Spring Boot.

Por fim, vale pontuar que o Spring Boot já conta com um servidor web Java embarcado, o TomCat, o que remove até mesmo a necessidade de configurar o servidor onde a aplicação será executada.

Lembrando que, por padrão, ele roda a aplicação na porta 8080.
Concluindo…

Como você deve ter notado ao longo deste post, o Spring Boot é super útil quando se busca por mais produtividade no desenvolvimento de aplicações Java. Não por acaso, ele rapidamente caiu nas graças da comunidade.

Hoje, uma série de projetos que estão em produção é fundamentada no Spring Boot, como o MIT, o Mercado Livre e o iFood. Aliás, até o próprio site do Spring é construído sob ele.

Esperamos que as informações apresentadas até aqui te ajudem a conhecer ao menos o básico sobre a ferramenta. Afinal, ela está super alinhada com as exigências do mercado de trabalho atual.

--

--