java-springboot

Installation
Summary

Comprehensive best practices guide for building production-ready Spring Boot applications.

  • Covers project structure, dependency injection patterns, and configuration management including externalized config, type-safe properties, and environment profiles
  • Details web layer design with RESTful APIs, DTOs, validation, and global exception handling
  • Addresses service layer statelessness, transaction management, and data access patterns using Spring Data JPA with custom queries and projections
  • Includes logging standards with SLF4J, testing strategies across unit and integration tests with test slices and Testcontainers, and security fundamentals with Spring Security and password encoding
SKILL.md

Spring Boot application development

Opinionated rules plus a router to deeper references. Code samples in the references were compiled and run on Spring Boot 4.1.1 (Spring Framework 7) and, where they differ, on Boot 3.5.16 (Framework 6.2). Boot 3 vs 4 differences are marked "Boot 3" / "Boot 4" in each reference.

Before writing code

  1. Detect, do not assume: read pom.xml/build.gradle(.kts) for the Spring Boot version, Java version, starters in use (spring-boot-starter-web is Boot 3, spring-boot-starter-webmvc is Boot 4), persistence (JPA, JDBC), the migration tool, the test setup, and the package layout and naming conventions of the existing code. Match them.
  2. Never upgrade Spring Boot, Java or dependencies implicitly. A Boot 3 -> 4 move is a deliberate task (spring-boot-4-migration).
  3. Ask before adding infrastructure: a broker (Kafka, RabbitMQ), a cache provider, a new database, or a scheduler/async setup. Add only what the user requested, with the Boot-managed version (no explicit version for BOM-managed artifacts, never latest).
  4. Verify every change with the project's own build: ./mvnw verify or ./gradlew build (plain mvn/gradle if no wrapper). Integration tests need Docker when they use Testcontainers.

Router

Installs
21.8K
GitHub Stars
40.9K
First Seen
Feb 25, 2026