Skip to content
Back to skills

Framework Spring Boot

ASecurity

Fornece padrões de engenharia e arquitetura para aplicações corporativas com Spring Boot 3.x+, cobrindo Spring MVC REST, injeção de dependências por construtor, DTOs imutáveis (Records), Virtual Threads (Loom), validação, Spring Data JPA e testes com Testcontainers.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
databasesjavasqlspringperformance

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add dandgabr/skills --skill framework-spring-boot --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Framework Spring Boot?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Framework Spring Boot
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dandgabr-framework-spring-boot/badge)](https://www.skillsdirectory.com/skills/dandgabr-framework-spring-boot)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: framework-spring-boot
description: "Fornece padrões de engenharia e arquitetura para aplicações corporativas com Spring Boot 3.x+, cobrindo Spring MVC REST, injeção de dependências por construtor, DTOs imutáveis (Records), Virtual Threads (Loom), validação, Spring Data JPA e testes com Testcontainers."
---

# Spring Boot Server Engineering & Best Practices

Esta skill estabelece os padrões e regras de engenharia de software para aplicações corporativas e microsserviços desenvolvidos com **Spring Boot 3.x+** e Java moderno (Java 17/21/25).

---

## 🧭 1. Princípios Arquiteturais e de Projeto
1. **Separação Limpa de Camadas**:
   - Manter anotações do framework nos pontos de entrada (REST Controllers), configuração e adaptadores de infraestrutura.
   - Evitar acoplamento de classes de domínio com anotações de serialização ou persistência sempre que possível.
2. **Injeção de Dependências Idiomática**:
   - Usar estritamente injeção via construtor com campos `final`. Evitar `@Autowired` direto em campos (dificulta testes e acopla a classe ao container de DI).
   - Injetar interfaces ou beans especializados em vez de classes de implementação diretas.
3. **Imutabilidade e DTOs Modernos**:
   - Usar Java `record` para todos os Data Transfer Objects (Requests e Responses), garantindo imutabilidade e validação estruturada com Jakarta Bean Validation (`@Valid`, `@NotNull`, `@NotBlank`, etc.).

---

## ⚡ 2. Performance, Concorrência e Virtual Threads
- **Virtual Threads (Project Loom)**: Em Spring Boot 3.2+, habilitar `spring.threads.virtual.enabled=true` para o servidor Tomcat embutido e tarefas assíncronas bloqueadas em I/O.
- **Evitar Pinning**: Em rotas que utilizam Virtual Threads, auditar o uso de `synchronized` substituindo por `ReentrantLock` em blocos com chamadas de rede ou banco de dados.
- **Spring Data JPA**: Evitar consultas N+1 utilizando `JOIN FETCH`, `@EntityGraph` ou projeções DTO dedicadas.

---

## 🧪 3. Estratégia de Testes
- **Testes Unitários Rápidos**: Testar serviços e regras de negócio sem carregar o contexto do Spring (`MockitoExtension`, instanciando a classe diretamente).
- **Testes Focados de Camada**: Usar `@WebMvcTest` para validar endpoints REST, filtros de segurança e serialização Jackson sem inicializar o banco de dados.
- **Testes de Integração com Testcontainers**: Usar `@SpringBootTest` com Testcontainers para instâncias reais de PostgreSQL, MySQL ou Redis.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…