{"enrichment":{"faq":[{"a":"springboot-patterns teaches a four-layer architecture: controllers handle HTTP requests, services contain business logic, repositories manage data access via JPA, and entities represent database models. This separation ensures each layer has a single responsibility, making code testable and maintainable. Controllers delegate to services, services orchestrate repositories, and repositories abstract database operations.","q":"What is the layered architecture Spring Boot example structure?"},{"a":"springboot-patterns covers REST controller design including proper HTTP method mapping, request/response DTOs for data transfer, validation annotations, and status code handling. Controllers should be thin, delegating business logic to services. Use @GetMapping, @PostMapping, etc., and return appropriate HTTP responses through ResponseEntity or @RestControllerAdvice for consistent error handling.","q":"How do springboot-patterns REST controllers implement best practices?"},{"a":"springboot-patterns addresses N+1 query prevention through entity graphs, fetch type configuration (lazy vs eager loading), and custom repository queries. Use @EntityGraph to load related entities efficiently, configure @ManyToOne and @OneToMany with appropriate fetch strategies, and write JPQL or native queries that join necessary associations in a single query rather than triggering multiple database calls.","q":"What JPA repository patterns does springboot-patterns teach to avoid N+1 queries?"},{"a":"springboot-patterns emphasizes services as the transactional boundary using @Transactional. Services orchestrate repositories, apply business rules, and handle DTOs. Mark read-only operations with @Transactional(readOnly=true) for optimization. Services transform entities to DTOs before returning to controllers, maintaining separation between internal domain models and external APIs.","q":"How should springboot-patterns guide service layer design and transactional boundaries?"},{"a":"springboot-patterns teaches @Valid and constraint annotations for request validation, with @ControllerAdvice for global exception handling. Use @ExceptionHandler methods to catch specific exceptions and return structured error responses. Implement proper HTTP status codes and error detail messages, optionally using ProblemDetail for RFC 7807 compliant error responses.","q":"How does springboot-patterns handle validation and global exception handling?"},{"a":"springboot-patterns identifies common mistakes: business logic in controllers, missing @Transactional boundaries, N+1 queries from improper lazy loading, DTOs not used for API contracts, and unhandled exceptions. It teaches proper layering, transactional management, entity graph optimization, and structured error handling to replace these anti-patterns with production-ready patterns.","q":"What Spring Boot anti-patterns does this skill help identify and fix?"}],"shadow_tags":["layered-architecture","orm-patterns","rest-api-design","data-access-layer","dto-mapping","error-handling","query-optimization","transaction-management","code-organization"],"summary_rewrite":"This skill teaches Spring Boot's layered architecture pattern, organizing code into controllers, services, repositories, and entities. It covers REST endpoint design, JPA relationships with lazy loading, DTOs for request/response handling, transactional boundaries, and global exception handling."},"files":[{"bytes":5192,"path":"skills/springboot-patterns/SKILL.md","sha256":"8745017bb4d4e8ebb669bd1b2308c89e9ffc43e15e42f0bbce8c5be4343da9cd","url":"https://skillfed.io/files/rohitg00/awesome-claude-code-toolkit/springboot-patterns/db2606f2/SKILL.md"}],"id":"rohitg00/awesome-claude-code-toolkit/springboot-patterns","links":{"html":"https://skillfed.io/rohitg00/awesome-claude-code-toolkit/springboot-patterns","md":"https://skillfed.io/rohitg00/awesome-claude-code-toolkit/springboot-patterns.md","repo":"https://github.com/rohitg00/awesome-claude-code-toolkit"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":849,"language":"JavaScript","last_updated":"2026-05-12","license":"Apache-2.0","name":"springboot-patterns","publisher":"rohitg00","stars":2394},"relations":{"similar":[{"id":"giuseppe-trisciuoglio/developer-kit/clean-architecture"},{"id":"dawiddutoit/custom-claude/java-spring-service"},{"id":"decebals/claude-code-java/jpa-patterns"},{"id":"pluginagentmarketplace/custom-plugin-java/java-jpa-hibernate"},{"id":"Jeffallan/claude-skills/spring-boot-engineer"},{"id":"manutej/luxor-claude-marketplace/spring-boot-development"},{"id":"personamanagmentlayer/pcl/spring-boot-expert"},{"id":"irahardianto/awesome-agv/spring-boot-idioms"},{"id":"softspark/ai-toolkit/java-patterns"},{"id":"Jeffallan/claude-skills/java-architect"}]},"slug":{"owner":"rohitg00","repo":"awesome-claude-code-toolkit","skill":"springboot-patterns"},"version":"db2606f2"}
