- Home
- Skills
- Affaan M
- Everything Claude Code
- Springboot Patterns
springboot-patterns_skill
- JavaScript
46.5k
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill affaan-m/everything-claude-code --skill springboot-patterns- SKILL.md9.7 KB
Overview
This skill packages proven Spring Boot architecture patterns for building scalable, production-grade Java backends. It covers REST API structure, layered services, data access, caching, async processing, logging, and operational best practices. Use it to standardize controllers, services, repositories, error handling, and observability across projects.
How this skill works
The skill codifies patterns: thin REST controllers, transactional service layer, Spring Data repositories, DTOs with validation, and centralized exception handling. It includes examples for caching (@EnableCaching + @Cacheable/@CacheEvict), async tasks (@EnableAsync + @Async), request logging and rate-limiting filters, retry helpers for external calls, and observability recommendations (metrics, tracing, structured logs).
When to use it
- When building REST APIs with Spring MVC or WebFlux that need clear controller → service → repository separation
- When configuring Spring Data JPA repositories, pagination, sorting, and DTO mapping
- When adding caching, async processing, or background jobs for performance
- When centralizing validation, exception handling, and security-related filters
- When preparing an app for production: connection pools, metrics, tracing, and structured logs
Best practices
- Keep controllers thin: delegate business logic to services and map domain → DTOs at the edges
- Prefer constructor injection and annotate transactional boundaries in services (@Transactional)
- Use @Validated / JSR-380 annotations on request DTOs and a ControllerAdvice for consistent errors
- Make external calls resilient with retry/backoff and keep handlers idempotent for background jobs
- Enable observability (Micrometer, Prometheus/OTel) and structured logging; configure HikariCP for DB pools
Example use cases
- Designing a paginated REST endpoint that returns Page<T> using PageRequest and DTO mapping
- Adding caching for frequently read entities with @Cacheable and evicting on updates
- Offloading notifications or long-running tasks using @Async and CompletableFuture
- Implementing a rate-limiting filter that uses request.getRemoteAddr() with trusted proxy configuration
- Centralizing validation errors and access-denied responses via @ControllerAdvice
FAQ
Configure ForwardedHeaderFilter and server.forward-headers-strategy, ensure the proxy overwrites X-Forwarded-For, and then use request.getRemoteAddr(); do not trust X-Forwarded-For directly.
When should I use @Transactional on service methods?
Annotate service methods that perform multiple repository operations or must run in a single atomic unit; use readOnly=true for pure queries to optimize performance.