Spring Boot Playground Modules
This project is a multi-module Spring Boot playground showcasing REST APIs, configuration, security, OpenAPI, JPA + Flyway, Thymeleaf MVC, Admin monitoring, and AI integrations.
1. Module Map
-
spring-boot-rest-sample — REST API basics
-
spring-boot-config-sample — Externalized configuration patterns
-
spring-boot-admin-server — Admin UI for monitoring apps
-
spring-boot-config-server — Centralized configuration service
-
spring-boot-data-jpa-flyway — Persistence + migrations
-
spring-boot-openapi-root — Parent for OpenAPI samples
-
spring-boot-thymeleaf — Server-side MVC with Thymeleaf
-
spring-boot-security-root — Parent for security samples
-
spring-boot-security-basic — Basic auth demo
-
spring-boot-security-jwt — JWT-based security demo
-
spring-boot-ai-samples — Spring AI integrations
-
openapi-sample (under spring-boot-openapi-root) — Concrete OpenAPI demo
2. spring-boot-rest-sample
A reference REST service demonstrating: - CRUD endpoints with JSON payloads - Bean validation and error handling - Controller advice for exceptions - Meaningful HTTP status codes
How to run: - mvn spring-boot:run - Explore endpoints under /api
Learning goals: - Build clean REST controllers - Structure DTOs/validation - Centralize error responses
3. spring-boot-config-sample
Externalized configuration patterns: - application.yaml + profiles - @ConfigurationProperties with validation - Metadata via configuration processor
How to run: - Use -Dspring.profiles.active=dev|prod to switch environments
Learning goals: - Safe, typed configuration binding - Profile-specific settings - Documenting configuration
4. spring-boot-admin-server
Admin console to monitor Spring Boot apps: - Health, metrics, environment, logs - JVM info and endpoints overview
How to run: - Start this server, then register client apps with admin client starter
Learning goals: - Observability with minimal setup - Operational visibility for teams
5. spring-boot-config-server
Centralized configuration with Spring Cloud Config: - Git-backed properties - Environment-specific files - Encryption/decryption support
How to run: - Point spring.cloud.config.server.git.uri to a repo - Clients fetch configuration at bootstrap
Learning goals: - Central config management - Safe secret handling and refresh
6. spring-boot-data-jpa-flyway
Persistence + migrations: - Spring Data JPA repositories - Transactions and entity mapping - Flyway versioned migrations
How to run: - mvn spring-boot:run (Flyway runs at startup)
Learning goals: - Reliable schema evolution - Clean repository design - Testing data layers
7. spring-boot-openapi-root
Parent for OpenAPI samples providing: - Dependency and plugin alignment - Shared conventions for documentation
Learning goals: - Organizing API documentation across modules
8. spring-boot-thymeleaf
Server-side MVC with Thymeleaf: - Templates, fragments, and layouts - Form binding and validation - I18n support
How to run: - mvn spring-boot:run - Visit web UI routes
Learning goals: - Productive SSR development - Clean template composition
9. spring-boot-security-root
Parent for security samples: - Baseline dependencies - Shared configuration practices
Learning goals: - Consistent security setup across modules
10. spring-boot-ai-samples
AI integrations with Spring AI: - Chat/completions flows - Prompt engineering patterns - Retry and observability
How to run: - Configure AI provider credentials via env/properties - mvn spring-boot:run
Learning goals: - Safely integrate AI services - Reusable abstractions for AI features