Concept
The first skeleton is deliberately plain. A backend course earns complexity by proving behavior, not by collecting starters before the domain needs them.
Task
- Generate a Spring Boot 4.1 app with Java 25 and Gradle Kotlin DSL.
- Add only Web, Validation, and Actuator.
- Document the initial package layout in README.md.
Run
./gradlew bootRun./gradlew testExpected Result
- The application starts.
- The test suite is green.
- The package diagram names controller, service, repository, and domain boundaries.
Common Traps
- Adding JPA before the schema lesson.
- Adding Security before the API has behavior to protect.
- Letting Initializr choices become architecture by accident.
Hint Ladder
Hint 1
A starter is a dependency and a lesson. If you cannot explain why it is here, it waits.
Hint 2
The package diagram can be text. The artifact matters more than the rendering tool.
Hint 3
Actuator is present now so later operational lessons have continuity.
Solution
Reference solution will link to the phase-1-start commit once the learner repo is public.
Boot 3 to 4 Delta
Boot 4 modularizes Spring Framework 7 era defaults. End the article with the actual starter delta from the generated dependency tree.