{"id":37418386,"url":"https://github.com/alexmond/spring-boot-playground","last_synced_at":"2026-01-16T06:03:19.832Z","repository":{"id":301076778,"uuid":"1008076456","full_name":"alexmond/spring-boot-playground","owner":"alexmond","description":"A hands-on learning hub for Spring Boot, showcasing REST APIs, security, JPA, Thymeleaf, OpenAPI, admin monitoring, and AI integrations. Perfect for developers mastering modern Spring Boot applications.","archived":false,"fork":false,"pushed_at":"2025-11-20T00:38:50.000Z","size":407,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-20T02:26:44.777Z","etag":null,"topics":["java","openapi","rest-api","spring","spring-boot","spring-data-jpa","spring-security","tymeleaf"],"latest_commit_sha":null,"homepage":"https://www.alexmond.org/samples/current/index.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexmond.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-25T01:55:17.000Z","updated_at":"2025-11-20T00:38:53.000Z","dependencies_parsed_at":"2025-06-25T03:32:48.599Z","dependency_job_id":"be8f3112-a1b8-4810-8204-bda8ef677f92","html_url":"https://github.com/alexmond/spring-boot-playground","commit_stats":null,"previous_names":["alexmond/spring-boot-playground"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alexmond/spring-boot-playground","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmond%2Fspring-boot-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmond%2Fspring-boot-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmond%2Fspring-boot-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmond%2Fspring-boot-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexmond","download_url":"https://codeload.github.com/alexmond/spring-boot-playground/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmond%2Fspring-boot-playground/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","openapi","rest-api","spring","spring-boot","spring-data-jpa","spring-security","tymeleaf"],"created_at":"2026-01-16T06:03:19.753Z","updated_at":"2026-01-16T06:03:19.822Z","avatar_url":"https://github.com/alexmond.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Spring Boot Playground Modules\n:toc: left\n:sectnums:\n\nThis project is a multi-module Spring Boot playground showcasing REST APIs, configuration, security, OpenAPI, JPA + Flyway, Thymeleaf MVC, Admin monitoring, and AI integrations.\n\n== Module Map\n\n- spring-boot-rest-sample — REST API basics\n- spring-boot-config-sample — Externalized configuration patterns\n- spring-boot-admin-server — Admin UI for monitoring apps\n- spring-boot-config-server — Centralized configuration service\n- spring-boot-data-jpa-flyway — Persistence + migrations\n- spring-boot-openapi-root — Parent for OpenAPI samples\n- spring-boot-thymeleaf — Server-side MVC with Thymeleaf\n- spring-boot-security-root — Parent for security samples\n- spring-boot-security-basic — Basic auth demo\n- spring-boot-security-jwt — JWT-based security demo\n- spring-boot-ai-samples — Spring AI integrations\n- openapi-sample (under spring-boot-openapi-root) — Concrete OpenAPI demo\n\n== spring-boot-rest-sample\n\nA reference REST service demonstrating:\n- CRUD endpoints with JSON payloads - Bean validation and error handling - Controller advice for exceptions - Meaningful HTTP status codes\n\nHow to run:\n- mvn spring-boot:run - Explore endpoints under /api\n\nLearning goals:\n- Build clean REST controllers - Structure DTOs/validation - Centralize error responses\n\n== spring-boot-config-sample\n\nExternalized configuration patterns:\n- application.yaml + profiles - @ConfigurationProperties with validation - Metadata via configuration processor\n\nHow to run:\n- Use -Dspring.profiles.active=dev|prod to switch environments\n\nLearning goals:\n- Safe, typed configuration binding - Profile-specific settings - Documenting configuration\n\n== spring-boot-admin-server\n\nAdmin console to monitor Spring Boot apps:\n- Health, metrics, environment, logs - JVM info and endpoints overview\n\nHow to run:\n- Start this server, then register client apps with admin client starter\n\nLearning goals:\n- Observability with minimal setup - Operational visibility for teams\n\n== spring-boot-config-server\n\nCentralized configuration with Spring Cloud Config:\n- Git-backed properties - Environment-specific files - Encryption/decryption support\n\nHow to run:\n- Point spring.cloud.config.server.git.uri to a repo - Clients fetch configuration at bootstrap\n\nLearning goals:\n- Central config management - Safe secret handling and refresh\n\n== spring-boot-data-jpa-flyway\n\nPersistence + migrations:\n- Spring Data JPA repositories - Transactions and entity mapping - Flyway versioned migrations\n\nHow to run:\n- mvn spring-boot:run (Flyway runs at startup)\n\nLearning goals:\n- Reliable schema evolution - Clean repository design - Testing data layers\n\n== spring-boot-openapi-root\n\nParent for OpenAPI samples providing:\n- Dependency and plugin alignment - Shared conventions for documentation\n\nLearning goals:\n- Organizing API documentation across modules\n\n=== openapi-sample\n\nConcrete OpenAPI demo:\n- springdoc-openapi integration - Swagger UI - Schemas and validation annotations\n\nHow to run:\n- mvn spring-boot:run - Visit /swagger-ui.html\n\nLearning goals:\n- API-first documentation - Accurate schemas and examples\n\n== spring-boot-thymeleaf\n\nServer-side MVC with Thymeleaf:\n- Templates, fragments, and layouts - Form binding and validation - I18n support\n\nHow to run:\n- mvn spring-boot:run - Visit web UI routes\n\nLearning goals:\n- Productive SSR development - Clean template composition\n\n== spring-boot-security-root\n\nParent for security samples:\n- Baseline dependencies - Shared configuration practices\n\nLearning goals:\n- Consistent security setup across modules\n\n=== spring-boot-security-basic\n\nBasic authentication:\n- In-memory users/roles - Form login and protected routes\n\nHow to run:\n- mvn spring-boot:run - Access a protected endpoint to see login flow\n\nLearning goals:\n- Security filter chain basics - Method and URL-based authorization\n\n=== spring-boot-security-jwt\n\nJWT-based security:\n- Token issuance/validation - Stateless sessions - Role-based access\n\nHow to run:\n- Obtain token via auth endpoint - Call protected APIs with Authorization: Bearer \u003ctoken\u003e\n\nLearning goals:\n- API security at scale - Token lifecycle and best practices\n\n== spring-boot-ai-samples\n\nAI integrations with Spring AI:\n- Chat/completions flows - Prompt engineering patterns - Retry and observability\n\nHow to run:\n- Configure AI provider credentials via env/properties - mvn spring-boot:run\n\nLearning goals:\n- Safely integrate AI services - Reusable abstractions for AI features\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexmond%2Fspring-boot-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexmond%2Fspring-boot-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexmond%2Fspring-boot-playground/lists"}