🚀 5.3 Onde Vive a Mágica: Convenções do Spring Boot
Diferente do padrão JEE tradicional (onde as páginas ficavam perdidas no diretório WEB-INF), o Spring Boot 3.5+ impõe convenções inteligentes que organizam nossa aplicação de forma profissional e segura.
Estrutura de Diretórios Premium
Tudo o que diz respeito ao front-end reside dentro de src/main/resources. Seguir esta estrutura é fundamental para que o Auto-Configuration encontre seus arquivos sem que você precise escrever uma única linha de código.
graph TD Resources[src/main/resources] Resources --> Static[static/ : Arquivos Públicos] Resources --> Templates[templates/ : Arquivos Privados] Resources --> Public[public/ : Páginas de Erro] Static --> CSS[css/main.css] Static --> IMG[img/logo.png] Static --> JS[js/app.js] Templates --> HTML[index.html] Templates --> CLIENTES[clientes/lista.html]
1. Diretório static/ (Acesso Direto)
Tudo aqui é exposto diretamente na raiz da URL. Se você colocar logo.png em static/img/, ele será acessível em http://localhost:9000/img/logo.png. Use para:
- CSS, Imagens e JavaScript.
- Bibliotecas externas (WebJars).
- Manifestos de Progressive Web Apps (PWA).
2. Diretório templates/ (Segurança Total)
Este diretório é privado. Seus arquivos .html do Thymeleaf não podem ser acessados diretamente via URL pelo usuário. Eles só aparecem na tela quando um Controller do Spring MVC os solicita, garantindo que o processamento do servidor sempre aconteça.
3. Diretório public/ (Resiliência)
Utilizado para arquivos estáticos que não mudam e, por convenção, reservado para páginas de erro customizadas (ex: 404.html, 500.html).
IMPORTANT
Convenção é Poder: Ao respeitar esses diretórios, você usufrui do cache automático do Spring e do suporte nativo a compressão GZIP, elevando a performance da sua aplicação para o nível de Elite.
No próximo capítulo, veremos como o Controller faz o papel de ponte entre esses arquivos e nossos dados.