Pular para o conteúdo
Skillpedia
APIs e servidores (backend)40 mil · #5203

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

https://github.com/github/awesome-copilot/blob/main/skills/java-springboot/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/java-springboot/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-springboot

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/java-springboot/SKILL.md -o SKILL.md
Conteú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, @Repository e @Controller/@RestController apropriadamente para definir beans.

Configuração

  • Configuração Externalizada: Use application.yml (ou application.properties) para configuração. YAML é frequentemente preferido por sua legibilidade e estrutura hierárquica.
  • Propriedades Type-Safe: Use @ConfigurationProperties para 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 @ControllerAdvice e @ExceptionHandler para 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 @Transactional em 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 JpaRepository ou CrudRepository para operações de banco de dados padrão.
  • Consultas Personalizadas: Para consultas complexas, use @Query ou 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 @SpringBootTest para 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas