Spring boot architecture
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/spring-boot-architecture
Standards for project structure and layering in Spring Boot 3+ applications. Use when structuring Spring Boot 3 projects, defining layers, or applying architecture patterns. (triggers: pom.xml, build.gradle, structure, layering, dto, controller, @RestController, @Service, @Repository, @Entity, @Bean, @Configuration)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill spring-boot-architectureAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.3 KB, 450 tokens by cl100k_base, as published. Nobody here has run it
Spring Boot Architecture Standards
Priority: P0 (CRITICAL)
Implementation Guidelines
Structure & Packaging
- Package by Feature: Prefer
com.app.feature(e.g.,user,order) over technical layers (controllers) for scalability. - Dependency Rule: Outer layers (Web) depend on Inner (Service). Inner layers MUST NOT depend on Outer.
- DTO Pattern: ALWAYS use DTOs for API inputs/outputs. NEVER return
@Entitydirectly. - Java Records: Use
recordfor DTOs to ensure immutability (Java 17+).
Layer Responsibilities
- Controller (Web): Handle HTTP, Validation (
@Valid), DTO mapping. Delegate logic to Service. - Service (Business): Transaction boundaries, orchestration. Returns Domain/DTOs.
- Repository (Data): Database interactions only. Returns Entities/Projections.
API Design
- Global Error Handling: Use
@RestControllerAdvicewithProblemDetails(RFC 7807). - Validation: Use Jakarta Bean Validation (
@NotNull,@Size) on DTOs. - Response: Use
ResponseEntityfor explicit status orResponseStatusException.
Verification Checklist (Mandatory)
- No Entities in API: Are all API responses using DTOs/Records instead of JPA Entities?
- Validation: Are
@Validand Jakarta Bean Validation constraints present on all input DTOs? - Layer coupling: Do Services depend on Controllers? (Prohibited)
- Transactionality: Are business transactions correctly bounded with
@Transactionalin the Service layer? - Error Details: Is
ProblemDetailsused for consistent error responses?
Anti-Patterns
- No Fat Controllers: Move business logic to Services.
- No Leaking Entities: Use DTOs instead of JPA Entities in APIs.
- No Circular Dependencies: Use Events or refactor to decouple services.
- No God Classes: Split large services into single-responsibility components.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.