Todo desenvolvedor Java sabe o quão trabalhoso é configurar uma aplicação. Uma vez que é necessário a criação de várias pastas e arquivos XML extensos e o menor dos erros pode impedir o funcionamento correto da aplicação, o que resulta em uma tremenda dor de cabeça até a identificação e correção do problema.
Certamente todo esse trabalho de configuração é por vezes frustrante. Pois o que o desenvolvedor deseja é escrever o código das regras de negócio, acompanhando os resultados na tela sem perda de tempo.
Entretanto, dentro do ecossistema do projeto Spring temos o Spring Boot que facilita todo esse trabalho de configuração.
Neste artigo você entenderá um pouco mais sobre como ele torna o desenvolvimento de aplicações Spring mais prazeroso.
O que é o Spring Boot?
O Spring Boot é um framework que torna fácil a criação de aplicações Spring autossuficientes e robustas, possibilitando a execução imediata. Contudo isso só é possível por conta da abordagem opinativa sobre a plataforma Spring e bibliotecas de terceiros, que permite ao desenvolvedor gastar o mínimo de tempo possível configurando o projeto, e sim codificando suas regras de negócio.
Dentre as principais funcionalidades do Spring Boot podemos citar:
- A criação de aplicações Spring autossuficientes;
- Servidores web como o Tomcat, Jetty e Undertow embutidos;
- Prover starter’s opinativos para gerenciamento de dependências e build;
- Configuração automática de bibliotecas Spring e de terceiros sempre que possível;
- Funcionalidades para ambiente de produção como métricas, health checks e configurações externalizadas.
- Dispensar a necessidade de configuração XML e geração de código.
Curso macOS - Fundamentos para desenvolvedores
Conhecer o cursoComo o Spring Boot funciona?
A princípio, para que tudo isso funcione, o Spring Boot utiliza o conceito de convenção sobre configuração, ou seja, o Spring Boot já possui uma série de configurações padrões para as bibliotecas Spring ou de terceiros que você deseja utilizar.
Entretanto, isso não impede que você personalize essas configurações. É bastante interessante que só é necessário alterar as configurações que deseja, as demais configurações do projeto seguem inalteradas.
Todo esse processo de autoconfiguração e gerenciamento de dependências providos pelo Spring Boot é feito através dos Starters - uma dependência que inicializa algum módulo dentro do nosso projeto.
Só para exemplificar, imagine o desenvolvimento de uma aplicação web com o Spring Web MVC, seria necessário adicionar no nosso projeto as dependências do Spring Core, Spring Web e Spring Web MVC. Além disso haveria a necessidade de configuração dos arquivos XML para que essas dependências funcionem corretamente. Com o Spring Boot, adicionando-se o spring-boot-starter-web
o projeto já estará configurado corretamente para utilizar o Spring Web MVC.
Ainda assim existe outra vantagem sobre o uso dos starters do Spring Boot, é que ao utilizá-los, o nosso arquivo de dependências fica menor e mais organizado.
O Spring Initializr
Além disso, para facilitar ainda mais o desenvolvimento de aplicações com o Spring Boot, o Spring possui uma página chama spring initializr, nesta página você repassa as informações do seu projeto como a versão do Spring Boot, GroupID, ArtifactID e os starters. Assim, o spring initializr gera um projeto base para que você já comece o desenvolvimento das regras de negócio da sua aplicação.
Criando uma aplicação Spring Boot na prática
Para ilustrar o funcionamento do Spring Boot, vamos criar uma aplicação web simples com o auxílio do spring initializr.
Primeiramente, acesse o site do spring initializr e preencha as informações:
- Project: Selecione a opção Maven
- Language: Selecione a opção Java
- Spring Boot: Selecione a opção 2.4.2
- Group: br.com.treinaweb
- Artifcat: spring-boot-teste
- Packaging: Jar
- Java: 11
Como esse será um projeto web, será necessária a adição dos starters do Spring Web e do Thymeleaf para servir como Template Engine.
Então, preenchidas todas as informações, clique no botão “GENERATE” para baixar o arquivo .zip
contendo o projeto.
Em seguida descompacte o arquivo .zip
e o importe para a IDE ou Editor de Código Fonte que você usa.
Agora crie uma nova pasta chamada controller
dentro da pasta src/main/java/br/com/treinaweb/springboottest
.
Logo após a criação da pasta, crie um novo arquivo Java chamado HomeController.java
com o seguinte código.
package br.com.treinaweb.springbootteste.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class HomeController {
@GetMapping("/saudacao/{nome}")
public String saudacao(@PathVariable String nome, ModelMap model) {
model.addAttribute("nome", nome);
return "saudacao";
}
}
Agora que já temos a nossa Action e nosso Controller criados, o que precisamos fazer é criar a página HTML que será exibida para o cliente.
Dentro da pasta resources/templates
crie um arquivo HTML chamado saudacao.html
com o seguinte código.
<!DOCTYPE html>
<html lang="pt-br" xmlns:th="<http://www.thymeleaf.org>">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Spring Boot - Index</title>
</head>
<body>
<h1 th:text="'Olá, ' + ${nome}"></h1>
</body>
</html>
Curso macOS - Fundamentos para desenvolvedores
Conhecer o cursoExecutando nossa aplicação Spring Boot
Por fim, agora que já temos a nossa aplicação criada, temos que executá-la para vermos o resultado no navegador.
A fim de executar a aplicação, abra o seu terminal e use o comando abaixo:
mvn spring-boot:run
Esse comando executa a aplicação que estará acessível a partir do localhost na porta 8080, acesse a url: http://localhost:8080/saudacao/TreinaWeb e uma página com o texto “Olá, TreinaWeb” aparecerá na tela.
Conclusão
Nesse artigo você viu como o Spring Boot nos ajuda durante o desenvolvimento de aplicações Spring, a criação de um projeto Spring Boot usando o Spring Initializr e o desenvolvimento de uma simples página usando o Spring Web MVC.
Embora esta seja uma aplicação bastante simples, perceba que em nenhum momento houve a necessidade de criar nenhum arquivo XML para a configuração dos módulos do Spring Web MVC e do Thymeleaf. Além disso, nem tivemos o trabalho de configurar um servidor Apache para servir a nossa aplicação, o que nos poupa tempo que é melhor empregado na codificação das regras de negócio.
Recomendo também a leitura do artigo Criando uma API REST com Spring Boot para um melhor contato com os frameworks do projeto Spring.