Complete file index for the java-spring-tutorials repository.
- Quick Links
- Repository Root
- 01-spring-hello-rest
- 02-spring-scheduling-tasks
- 03-quote-service
- 03-spring-consuming-rest
- 04-spring-relational-data-access
- Documentation
- CI/CD & Scripts
- By File Type
| Type | Link |
|---|---|
| AI guidance | AGENTS.md |
| Run all modules | QUICK_START.md |
| CI quality gates | CI_PLAN.md |
java-spring-tutorials/
├── README.md
├── AGENTS.md
├── pom.xml
├── checkstyle.xml
├── .editorconfig
├── .gitignore
└── .github/workflows/java-ci.yml
| File | Purpose |
|---|---|
| README.md | Repository overview, badges, module list |
| AGENTS.md | AI guidance for scaffolding and consistency |
| pom.xml | Parent POM (aggregator for all modules) |
| checkstyle.xml | Shared code style rules |
| .editorconfig | Editor formatting rules |
| .gitignore | Git ignore patterns |
| java-ci.yml | GitHub Actions CI workflow |
REST API basics with @RestController, records, and JSON responses.
Spring Guide: Building a RESTful Web Service
| File | Package | Description |
|---|---|---|
| RestServiceApplication.java | com.example.restservice |
Main entry point with @SpringBootApplication |
| GreetingController.java | com.example.restservice |
REST controller with /greeting endpoint |
| Greeting.java | com.example.restservice |
Record for JSON response |
| File | Description |
|---|---|
| RestServiceApplicationTests.java | Context load test |
| GreetingControllerTest.java | Controller endpoint tests |
| File | Description |
|---|---|
| pom.xml | Module POM |
| application.properties | Spring Boot config (if exists) |
| File | Description |
|---|---|
| README.md | Module overview |
| spring-initializr.md | Project setup from start.spring.io |
| run-instructions.md | How to build and run |
| rest-controller-greeting.md | GreetingController explanation |
| guide.md | Original Spring guide reference |
| File | Shows |
|---|---|
| hello-rest-browser.png | Browser response for /greeting |
| hello-rest-browser-name.png | Browser response with ?name= param |
| spring-initializr.png | Spring Initializr setup |
Scheduled task execution with @Scheduled and @EnableScheduling.
Spring Guide: Scheduling Tasks
| File | Package | Description |
|---|---|---|
| SchedulingTasksApplication.java | com.example.schedulingtasks |
Main entry with @EnableScheduling |
| ScheduledTasks.java | com.example.schedulingtasks |
Component with @Scheduled method |
| File | Description |
|---|---|
| SchedulingTasksApplicationTests.java | Context load test |
| ScheduledTasksTest.java | Awaitility-based scheduler test |
| File | Description |
|---|---|
| pom.xml | Module POM |
| application.properties | Spring Boot config |
| File | Description |
|---|---|
| README.md | Module overview |
| spring-initializr.md | Project setup |
| run-instructions.md | How to run |
| scheduled-tasks.md | ScheduledTasks breakdown |
| testing.md | Awaitility testing explanation |
| guide.md | Original Spring guide reference |
| File | Shows |
|---|---|
| scheduled-task-output.png | Console output |
| intellij-test-runner.png | Test runner screenshot |
| spring-initializr.png | Spring Initializr setup |
REST API provider serving quotes (backend for consuming-rest).
Spring Guide: Consuming a RESTful Web Service (provider side)
| File | Package | Description |
|---|---|---|
| QuoteServiceApplication.java | com.example.quoteservice |
Main entry point |
| QuoteController.java | com.example.quoteservice |
REST controller with /api/, /api/random, /api/{id} |
| Quote.java | com.example.quoteservice |
Record for quote response wrapper |
| Value.java | com.example.quoteservice |
Record for quote content |
| File | Description |
|---|---|
| QuoteControllerTest.java | Tests for all 3 endpoints |
| File | Description |
|---|---|
| pom.xml | Module POM |
| application.properties | Spring Boot config |
| File | Description |
|---|---|
| README.md | Module overview |
| DEVELOPER_NOTES.md | Personal notes and explanations |
| spring-initializr.md | Project setup |
| quote-controller.md | Controller and Java Streams explanation |
| ADR | Decision |
|---|---|
| ADR-0001-split-provider-consumer.md | Why separate modules for provider/consumer |
| ADR-0002-rest-api-shape.md | REST API design decisions |
| ADR-0003-use-threadlocalrandom.md | Thread-safe random selection |
| File | Shows |
|---|---|
| quote-service-output.png | curl output |
REST client consuming the quote-service using RestClient.
Spring Guide: Consuming a RESTful Web Service
| File | Package | Description |
|---|---|---|
| ConsumingRestApplication.java | com.example.consumingrest |
Main entry point |
| QuoteController.java | com.example.consumingrest |
REST controller with /quote endpoint, calls backend |
| Quote.java | com.example.consumingrest |
Record for quote response |
| Value.java | com.example.consumingrest |
Record for quote content |
| File | Description |
|---|---|
| ConsumingRestApplicationTests.java | Context load test |
| QuoteControllerTest.java | Controller tests with mocked backend |
| File | Description |
|---|---|
| pom.xml | Module POM |
| application.properties | Port 8081, quote-service URL |
| File | Description |
|---|---|
| README.md | Module overview |
| DEVELOPER_NOTES.md | Personal notes and explanations |
| spring-initializr.md | Project setup |
| run-instructions.md | How to run both services |
| quote-controller.md | RestClient explanation |
| java-records.md | Records and JSON mapping |
| guide.md | Original Spring guide reference |
| ADR | Decision |
|---|---|
| ADR-0001-use-restclient.md | RestClient over RestTemplate |
| ADR-0002-expose-quote-endpoint.md | Why /quote REST endpoint |
| ADR-0003-error-handling-fallback.md | Graceful error handling |
| ADR-0004-externalize-base-url.md | Configurable backend URL |
| File | Shows |
|---|---|
| consuming-rest-output.png | curl output |
| spring-initializr.png | Spring Initializr setup |
Console application demonstrating Spring JdbcTemplate with H2 in-memory database.
Spring Guide: Accessing Relational Data using JDBC with Spring
| File | Description |
|---|---|
| RelationalDataAccessApplication.java | Main app with CommandLineRunner |
| Customer.java | Customer record (domain model) |
| File | Description |
|---|---|
| README.md | Module overview |
| DEVELOPER_NOTES.md | Developer notes (Phase 1 & 2) |
| spring-initializr.md | Spring Initializr settings |
| run-instructions.md | How to run the app |
| jdbc-template.md | JdbcTemplate explained |
| customer.md | Customer record explained |
| guide.md | Spring guide reference |
| File | Purpose |
|---|---|
| INDEX.md | This file - master index |
| QUICK_START.md | Run instructions for all modules |
| CI_PLAN.md | CI/CD quality gates |
| ADR | Decision |
|---|---|
| ADR-0001-ci-badges.md | Shields.io endpoint badges |
| ADR-0002-ci-stack.md | CI quality gates stack |
| ADR-0003-changelog-format.md | Changelog format |
| ADR-0004-lychee-link-checker.md | Lychee link checker configuration |
| Template | Purpose |
|---|---|
| MODULE_README.md | New module README |
| pom.xml | Child module POM with quality plugins |
| spring-initializr.md | Spring Initializr setup docs |
| run-instructions.md | Module run instructions |
| ADR_TEMPLATE.md | Architecture Decision Record |
| CONCEPT.md | Concept explanation |
| DEVELOPER_NOTES.md | Personal notes |
| File | Purpose |
|---|---|
| java-ci.yml | Main CI workflow |
| File | Purpose |
|---|---|
| ci_metrics_summary.py | Parse QA reports, generate badges |
Auto-generated JSON files for Shields.io:
| Badge | Aggregate | Per-Module |
|---|---|---|
| Coverage | jacoco.json | ci/badges/{module}/jacoco.json |
| Mutation | mutation.json | ci/badges/{module}/mutation.json |
| SpotBugs | spotbugs.json | ci/badges/{module}/spotbugs.json |
| Module | File | Description |
|---|---|---|
| 01 | RestServiceApplication.java | Main class |
| 01 | GreetingController.java | REST controller |
| 01 | Greeting.java | Response record |
| 02 | SchedulingTasksApplication.java | Main class |
| 02 | ScheduledTasks.java | Scheduled component |
| 03-qs | QuoteServiceApplication.java | Main class |
| 03-qs | QuoteController.java | REST controller |
| 03-qs | Quote.java | Response record |
| 03-qs | Value.java | Content record |
| 03-cr | ConsumingRestApplication.java | Main class |
| 03-cr | QuoteController.java | REST client controller |
| 03-cr | Quote.java | Response record |
| 03-cr | Value.java | Content record |
| Module | File | Tests |
|---|---|---|
| 01 | RestServiceApplicationTests.java | Context load |
| 01 | GreetingControllerTest.java | Endpoint tests |
| 02 | SchedulingTasksApplicationTests.java | Context load |
| 02 | ScheduledTasksTest.java | Awaitility scheduler test |
| 03-qs | QuoteControllerTest.java | All endpoint tests |
| 03-cr | ConsumingRestApplicationTests.java | Context load |
| 03-cr | QuoteControllerTest.java | Mocked backend tests |
| Location | ADR | Decision |
|---|---|---|
| Root | ADR-0001 | CI badges |
| Root | ADR-0002 | CI stack |
| Root | ADR-0003 | Changelog format |
| Root | ADR-0004 | Link checker config |
| 03-qs | ADR-0001 | Split modules |
| 03-qs | ADR-0002 | API shape |
| 03-qs | ADR-0003 | ThreadLocalRandom |
| 03-cr | ADR-0001 | RestClient |
| 03-cr | ADR-0002 | Quote endpoint |
| 03-cr | ADR-0003 | Error handling |
| 03-cr | ADR-0004 | Externalize URL |
| Module | File |
|---|---|
| 01 | hello-rest-browser.png |
| 01 | hello-rest-browser-name.png |
| 01 | spring-initializr.png |
| 02 | scheduled-task-output.png |
| 02 | intellij-test-runner.png |
| 02 | spring-initializr.png |
| 02 | run-instructions.png |
| 03-qs | quote-service-output.png |
| 03-cr | consuming-rest-output.png |
| 03-cr | spring-initializr.png |
| Category | Count |
|---|---|
| Java source files | 14 |
| Java test files | 8 |
| Markdown docs | 54 |
| ADRs | 11 |
| Images | 10 |
| Modules | 5 |