Careeroza
Project Structure
What Initializr Generates
shopease/
├── .mvn/wrapper/ Maven wrapper files
├── mvnw, mvnw.cmd run Maven without installing it
├── pom.xml dependencies and build settings
└── src/
├── main/
│ ├── java/com/shopease/
│ │ └── ShopeaseApplication.java main class (entry point)
│ └── resources/
│ ├── application.properties configuration
│ ├── static/ static files (css, js, images)
│ └── templates/ server-side HTML templates (Thymeleaf)
└── test/java/com/shopease/
└── ShopeaseApplicationTests.java checks the app context startsPackage by Feature
As the app grows, add packages under com.shopease. Component scanning only looks in the main class's package and its sub-packages, so a class in com.other would be ignored.
com.shopease ├── ShopeaseApplication.java ├── product/ ProductController, ProductService, ProductRepository, Product ├── order/ OrderController, OrderService, ... ├── user/ └── config/ AppConfig, WebConfig
Note: A very common beginner bug: putting a controller in a package outside the main class's package. The app starts without errors but every request returns 404.