{"enrichment":{"faq":[{"a":"Spring Boot Idioms emphasizes constructor injection as the idiomatic pattern for dependency injection. Constructor-based injection makes dependencies explicit, enables immutability, and simplifies testing by allowing easy mock injection. Avoid field injection with @Autowired; instead, use constructor parameters or setter injection when appropriate. Spring Boot's auto-configuration automatically wires beans, so declare your dependencies clearly in constructors to leverage framework conventions and ensure your code remains testable and production-ready.","q":"What are Spring Boot best practices for dependency injection?"},{"a":"Spring Boot Idioms teaches annotation-driven development and auto-configuration patterns that reduce boilerplate and enforce consistency. Spring Boot 3.x conventions handle bean registration, property binding, and lifecycle management automatically. By following idiomatic patterns\u2014such as using @ConfigurationProperties for externalized config, @RestController with proper DTOs, and @Transactional on service methods\u2014you write cleaner, more maintainable code that aligns with framework expectations and community standards.","q":"How do Spring Boot 3 patterns and idioms improve code quality?"},{"a":"Spring Boot Idioms covers slice-based testing with @WebMvcTest for controller layers and integration testing with TestContainers for database-backed services. Use @WebMvcTest to isolate REST controllers and verify request/response handling without loading the full context. For production-ready code, employ integration tests with real or containerized databases to validate Spring Data JPA queries and transactional behavior. These patterns ensure your code is thoroughly tested before deployment.","q":"What testing patterns does Spring Boot Idioms recommend?"},{"a":"Spring Boot Idioms covers Spring Boot Actuator and Micrometer for production observability. Actuator exposes health, metrics, and environment endpoints; Micrometer standardizes metric collection across monitoring backends. The skill teaches structured logging with MDC (Mapped Diagnostic Context) for distributed tracing and includes patterns for custom metrics. These tools enable you to monitor application behavior, diagnose issues, and ensure production readiness.","q":"How does Spring Boot Idioms address observability and monitoring?"},{"a":"Spring Boot Idioms covers Spring Data JPA query methods, custom repository implementations, and projections. Learn to write declarative queries using method naming conventions and @Query annotations, reducing boilerplate data access code. Projections allow you to fetch only required fields, improving performance. The skill also addresses transactional service patterns and proper exception handling with @ControllerAdvice, ensuring your data layer is both idiomatic and efficient.","q":"What Spring Data JPA patterns does this skill teach?"},{"a":"Spring Boot Idioms teaches REST controller design using @RestController with proper separation of concerns: controllers handle HTTP concerns, services contain business logic, and DTOs (Data Transfer Objects) map between API contracts and domain models. Use @RequestBody and @ResponseBody annotations for automatic serialization. Return appropriate HTTP status codes and structure error responses consistently. This layered approach keeps your REST API clean, testable, and aligned with Spring Boot conventions.","q":"How should I structure REST controllers and DTOs in Spring Boot?"}],"shadow_tags":["framework-patterns","dependency-management","rest-api-design","observability-metrics","test-slicing","configuration-management","entity-dto-mapping","production-readiness"],"summary_rewrite":"Learn idiomatic Spring Boot 3.x patterns grounded in auto-configuration, constructor injection, and actuator-driven observability. Covers dependency injection best practices, Spring Data JPA query methods and projections, REST controller design with DTOs, and structured logging for production readiness. Includes testing patterns for integration and controller slices."},"files":[{"bytes":2980,"path":".agents/skills/spring-boot-idioms/SKILL.md","sha256":"debe81234b70f142a693d8369a8e3f68cc9b9e1e3b93196177bb611eb7ef9560","url":"https://skillfed.io/files/irahardianto/awesome-agv/spring-boot-idioms/11ec04ec/SKILL.md"}],"id":"irahardianto/awesome-agv/spring-boot-idioms","links":{"html":"https://skillfed.io/irahardianto/awesome-agv/spring-boot-idioms","md":"https://skillfed.io/irahardianto/awesome-agv/spring-boot-idioms.md","repo":"https://github.com/irahardianto/awesome-agv"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":48,"language":"JavaScript","last_updated":"2026-07-17","license":"MIT","name":"Spring Boot Idioms","publisher":"irahardianto","stars":150},"relations":{"similar":[{"id":"Jeffallan/claude-skills/spring-boot-engineer"},{"id":"decebals/claude-code-java/spring-boot-patterns"},{"id":"bobmatnyc/claude-mpm-skills/spring-boot"},{"id":"irahardianto/awesome-agv/java-idioms"},{"id":"irahardianto/awesome-agv/laravel-idioms"},{"id":"personamanagmentlayer/pcl/spring-boot-expert"},{"id":"manutej/luxor-claude-marketplace/spring-boot-development"},{"id":"giuseppe-trisciuoglio/developer-kit/spring-boot-test-patterns"},{"id":"Mindrally/skills/spring-framework"},{"id":"xu-xiang/everything-claude-code-zh/springboot-tdd"}]},"slug":{"owner":"irahardianto","repo":"awesome-agv","skill":"spring-boot-idioms"},"version":"11ec04ec"}
