O controlador é a ponte inteligente que conecta as interações do usuário com a lógica interna da sua aplicação, orquestrando todo o processo de forma limpa e organizada. Tecnicamente, o Controlador é um componente central da arquitetura MVC (Model-View-Controller), responsável por gerenciar o fluxo da aplicação. Suas principais responsabilidades são:
- Receber Requisições: Ele “ouve” as requisições web que chegam a determinadas URLs (endpoints). Por exemplo, quando um usuário acessa
www.seusite.com.br/produtos
. - Interpretar o Pedido: Ele analisa a requisição para entender a intenção do usuário. Foi uma requisição
GET
para buscar dados? Ou umPOST
para enviar novas informações? - Delegar a Tarefa: Um bom controlador não executa a lógica de negócio complexa. Em vez disso, ele delega o trabalho pesado para outras camadas da aplicação, como os Serviços (Services), que são os “chefs de cozinha” responsáveis por preparar os dados.
- Preparar e Enviar a Resposta: Após receber o resultado do Serviço, o controlador prepara a resposta final e a envia de volta para o cliente. Essa resposta pode ser uma página HTML para ser exibida no navegador ou, mais comumente em APIs, dados puros no formato JSON.
Como Criar um Controlador?
Se você ainda não sabe como iniciar uma aplicação Spring Boot, é importante que aprenda lendo o artigo Olá Mundo com Spring Boot. Uma vez que você já iniciou já tem a sua aplicação Spring Boot em execucação, vamos construir o nosso primeiro controlador.
- Localize a pasta onde está a classe principal da aplicação.
- Crie uma pasta chamada controllers
- Crie um arquivo java, neste exemplo vamos usar o nome calculadora.java
- Note que já existe uma estrutura de código padrão contendo o pacote e a classe do arquivo java. A primeira coisa que precisamos fazer é definir que este arquivo será um controlador e que ele será acessado a partir de um endereço url. Acrescente antes da classe as anotações
@RestController
e@RequestMapping
.
Até aqui, tudo tranquilo. De imediato, o que você precisa saber é que todo controlador Java com Spring Boot na maioria das vezes terão esta estrutura de código. Vamos avançar e escrever nosso primeiro método?
Como Criar um Método Controlador?
Em Orientação à Objetos, um método é um bloco de código que executa algo, uma ação. Agora que você já tem seu controlador, você precisa dar alguma tarefa para ele executar. Como nosso exemplo é uma calculadora, vamos então criar um método capaz de somar dois números.
- Dentro da classe, crie o método
Somar()
que irá retornar um número inteiro. - Vamos criar duas variáveis que irão receber dois números inteiros e uma que irá armazenar o resultado.
- E por fim, vamos editar a linha
return(0)
que atualmente apenas retorna o valor zero, para retornar o valor do cálculo armazenado na variávelresultado
.
Até aqui, já temos um controlador e um método controlador que faz a soma de dois números e precisamos definir como executar este método e verificar o seu resultado. Para isso, vamos definir uma rota de acesso ao método construtor.
Como Acessar o Método Construtor
- Adicione, logo acima do método, o código
@GetMapping("calculadora/somar")
- Reinicie a sua aplicação Spring Boot pressionando o atalho Ctrl + Shift + F5
- Execute seu navegador favorito e acesse http://localhost:8080/calculadora/somar. Eis o resultado;
O resultado gerado foi um conteúdo HTML exibindo o valor da soma. No entanto, existem dois cenários a serem explorados quando se programa um contralador, eu posso retornar dados brutos em um documento HTML como feito neste exemplo, ou posso retornar dados estruturados se o objetivo da aplicação foi construir uma API.
Spring Boot e REST API
Aplicações Spring Boot são amplamente utilizadas para criar REST APIs, e é nesse cenário que o framework realmente brilha.
Quando um controlador é anotado com @RestController
, o Spring Boot assume que o objetivo é construir uma API. Isso significa que qualquer objeto Java retornado por um método será automaticamente convertido para o formato JSON — o padrão de comunicação para a maioria das APIs modernas, por ser leve e legível.
Estruturando o retorno do método para dados estruturados jSon com Map .
Map é….
Exemplo;
no código abaixo, deixei em negrito as linhas a serem acrescentadas e alteradas.
@GetMapping("/calculadora/somar")
public Map<String, Integer> somar() {
Integer num1 = 5;
Integer num2 = 10;
Integer resultado = num1 + num2;
// 1. Mapea os dados para construir o JSON.
Map<String, Integer> resposta = new HashMap<>();
// 2. Coloque o resultado no mapa com a chave "resultado"
resposta.put("resultado", resultado);
// 3. Retorne o mapa. O Spring fará o resto.
return resposta;
}
Eis o resultado;

O que vem a seguir? A interface (view)
Agora que temos um controlador e um método controlador, basta agora construir a interface para que usuário possa interagir com a aplicação. Este assunto será abordado no próximo artigo, até lá!