java-springboot
Orienta seu agente a criar aplicações com Spring Boot seguindo as melhores práticas. Ajuda a construir aplicações robustas e eficientes.
O que ela faz
Este guia ajuda você a criar aplicativos Java usando a tecnologia Spring Boot, seguindo as melhores práticas recomendadas. Ele cobre desde a configuração inicial até testes e segurança, garantindo que seu código seja de alta qualidade.
Quando usar
- ✓Ao iniciar um novo projeto Spring Boot.
- ✓Ao refatorar um código Spring Boot existente.
- ✓Ao aprender sobre desenvolvimento com Spring Boot.
Exemplo do que pedir para a IA
“Como devo organizar as pastas do meu projeto Spring Boot?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A IA fornece conselhos sobre como configurar seu projeto, escrever código limpo e eficiente, gerenciar configurações e dados, e garantir a segurança e testabilidade do seu aplicativo Spring Boot.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill java-springbootOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/java-springboot/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Melhores Práticas do Spring Boot
Seu objetivo é me ajudar a escrever aplicações Spring Boot de alta qualidade, seguindo as melhores práticas estabelecidas.
Configuração e Estrutura do Projeto
- Ferramenta de Build: Use Maven (
pom.xml) ou Gradle (build.gradle) para gerenciamento de dependências. - Starters: Use os starters do Spring Boot (ex:
spring-boot-starter-web,spring-boot-starter-data-jpa) para simplificar o gerenciamento de dependências. - Estrutura de Pacotes: Organize o código por funcionalidade/domínio (ex:
com.example.app.order,com.example.app.user) em vez de por camada (ex:com.example.app.controller,com.example.app.service).
Injeção de Dependência e Componentes
- Injeção via Construtor: Sempre use injeção baseada em construtor para dependências obrigatórias. Isso torna os componentes mais fáceis de testar e as dependências explícitas.
- Imutabilidade: Declare os campos de dependência como
private final. - Estereótipos de Componente: Use as anotações
@Component,@Service,@Repositorye@Controller/@RestControllerapropriadamente para definir beans.
Configuração
- Configuração Externalizada: Use
application.yml(ouapplication.properties) para configuração. YAML é frequentemente preferido por sua legibilidade e estrutura hierárquica. - Propriedades Type-Safe: Use
@ConfigurationPropertiespara vincular a configuração a objetos Java fortemente tipados. - Perfis: Use Perfis Spring (
application-dev.yml,application-prod.yml) para gerenciar configurações específicas do ambiente. - Gerenciamento de Segredos: Não codifique segredos diretamente. Use variáveis de ambiente ou uma ferramenta dedicada de gerenciamento de segredos como HashiCorp Vault ou AWS Secrets Manager.
Camada Web (Controllers)
- APIs RESTful: Projete endpoints RESTful claros e consistentes.
- DTOs (Data Transfer Objects): Use DTOs para expor e consumir dados na camada de API. Não exponha entidades JPA diretamente ao cliente.
- Validação: Use Java Bean Validation (JSR 380) com anotações (
@Valid,@NotNull,@Size) em DTOs para validar payloads de requisição. - Tratamento de Erros: Implemente um manipulador de exceções global usando
@ControllerAdvicee@ExceptionHandlerpara fornecer respostas de erro consistentes.
Camada de Serviço
- Lógica de Negócios: Encapsule toda a lógica de negócios dentro de classes
@Service. - Statelessness: Serviços devem ser stateless (sem estado).
- Gerenciamento de Transações: Use
@Transactionalem métodos de serviço para gerenciar transações de banco de dados declarativamente. Aplique-o no nível mais granular necessário.
Camada de Dados (Repositories)
- Spring Data JPA: Use repositórios Spring Data JPA estendendo
JpaRepositoryouCrudRepositorypara operações de banco de dados padrão. - Consultas Personalizadas: Para consultas complexas, use
@Queryou a JPA Criteria API. - Projeções: Use projeções de DTO para buscar apenas os dados necessários do banco de dados.
Logging
- SLF4J: Use a API SLF4J para logging.
- Declaração de Logger:
private static final Logger logger = LoggerFactory.getLogger(MyClass.class); - Logging Parametrizado: Use mensagens parametrizadas (
logger.info("Processing user {}...", userId);) em vez de concatenação de strings para melhorar o desempenho.
Testes
- Testes de Unidade: Escreva testes de unidade para serviços e componentes usando JUnit 5 e um framework de mocking como Mockito.
- Testes de Integração: Use
@SpringBootTestpara testes de integração que carregam o contexto da aplicação Spring. - Fatias de Teste: Use anotações de fatia de teste como
@WebMvcTest(para controllers) ou@DataJpaTest(para repositórios) para testar partes específicas da aplicação isoladamente. - Testcontainers: Considere usar Testcontainers para testes de integração confiáveis com bancos de dados reais, message brokers, etc.
Segurança
- Spring Security: Use Spring Security para autenticação e autorização.
- Codificação de Senhas: Sempre codifique senhas usando um algoritmo de hashing forte como BCrypt.
- Sanitização de Entrada: Prevenha injeção de SQL usando Spring Data JPA ou consultas parametrizadas. Prevenha Cross-Site Scripting (XSS) codificando a saída corretamente.
Perguntas frequentes
O que são 'starters' do Spring Boot?
São pacotes que simplificam a adição de funcionalidades comuns ao seu projeto, como web ou acesso a dados.
Por que usar injeção via construtor?
Torna mais fácil testar seu código e deixa claro quais dependências seu componente precisa.
O que são DTOs?
São objetos usados para transferir dados entre a camada da API e o cliente, evitando expor diretamente os detalhes internos do banco de dados.
Detalhes
Descrição original do autor
Get best practices for developing applications with Spring Boot.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5203
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC