spring-boot-skill
This Spring Boot skill provides comprehensive guidance for developing enterprise applications using Spring Boot, covering Maven configuration, domain-driven package structure, data access with Spring Data JPA, service layer implementation, REST API development, modular architecture with Spring Modulith, testing strategies, Thymeleaf templating, Docker Compose integration, and task automation. Use this skill when building Spring Boot applications to ensure consistency with established best practices across all architectural layers.
git clone --depth 1 https://github.com/sivaprasadreddy/sivalabs-agent-skills /tmp/spring-boot-skill && cp -r /tmp/spring-boot-skill/skills/spring-boot ~/.claude/skills/spring-boot-skillSKILL.md
# Spring Boot Skill Apply the practices below when developing Spring Boot applications. Read the linked reference only when working on that area. ## Maven pom.xml Configuration Read [references/spring-boot-maven-config.md](references/spring-boot-maven-config.md) for Maven `pom.xml` configuration with supporting plugins and configurations to improve code quality, and testing. ## Package structure Read [references/code-organization.md](references/code-organization.md) for domain-driven, module-based package layout and naming conventions. ## Spring Data JPA Implement the repository and entity layer using [references/spring-data-jpa.md](references/spring-data-jpa.md). ## Service layer Implement business logic in the service layer using [references/spring-service-layer.md](references/spring-service-layer.md). ## Spring MVC REST APIs Implement REST APIs with Spring MVC using [references/spring-webmvc-rest-api.md](references/spring-webmvc-rest-api.md). ## Spring Modulith Build a modular monolith with Spring Modulith using [references/spring-modulith.md](references/spring-modulith.md). ## Thymeleaf If Thymeleaf is used for view templates, refer [references/thymeleaf.md](references/thymeleaf.md) ## Testing Write tests at complementary levels — unit, sliced Spring tests, and at least one end-to-end/smoke test; the levels are not either/or. Most framework-touching tests belong at the fast **sliced** level (`@SpringBootTest(classes = …)` or a slice annotation); keep full-context `@SpringBootTest` for a smoke test plus a request-level end-to-end. For why the levels are complementary and how to keep a large suite fast (context caching, one container for the suite), read [references/testing-strategy.md](references/testing-strategy.md). | What you're testing | Level | Reference | |---|---|---| | Business/domain logic, no framework | Unit (no Spring context) | [testing-unit-mocking.md](references/testing-unit-mocking.md) | | JPA / JDBC / JdbcClient / Spring Data JDBC / jOOQ queries | Persistence slice + Testcontainers | [testing-slices-persistence.md](references/testing-slices-persistence.md) | | Controller, JSON serialization, or a REST client | Web slice (`@WebMvcTest`/`@JsonTest`/`@RestClientTest`) | [testing-slices-web.md](references/testing-slices-web.md) | | A few components together, external HTTP (WireMock), or a startup/request-level smoke test | Sliced `@SpringBootTest(classes = …)` or smoke test | [testing-integration.md](references/testing-integration.md) | | Full REST API over a real port, full `BaseIT` suite (`RestTestClient`) | End-to-end | [spring-boot-rest-api-testing.md](references/spring-boot-rest-api-testing.md) | | A view-rendering controller (`MockMvcTester`) | Web slice | [spring-boot-webapp-testing-with-mockmvctester.md](references/spring-boot-webapp-testing-with-mockmvctester.md) | | Wiring a container (`@ServiceConnection` / dynamic properties) | — | [testcontainers-wiring.md](references/testcontainers-wiring.md) | All persistence and integration tests use **Testcontainers with a real database** (never in-memory H2); see [references/testcontainers-wiring.md](references/testcontainers-wiring.md) for `@ServiceConnection` vs dynamic-property wiring. ### Write ArchUnit Tests To write tests for testing the architecture using ArchUnit, refer [references/archunit.md](references/archunit.md) ### Spring Boot Docker Compose Support To use Docker Compose support for local development, refer [references/spring-boot-docker-compose.md](references/spring-boot-docker-compose.md). ## Taskfile Use [references/taskfile.md](references/taskfile.md) for easier commands execution.
|
>
>
>
Use when the user wants to create/generate/scaffold a new Spring Boot project (Maven or Gradle, REST API / Web App / Spring Boot + Angular full stack). Derives progen CLI inputs from the user's plain-English project description, asks for any missing mandatory info, ensures the progen binary is available, and runs it to generate the project. If the user asks for features progen doesn't support natively, generate the base project first, then add those features on top of the generated code.
>