Think about where you keep files like application.properties or HTML templates.
The 'src/main/resources' folder holds non-code files like configuration, static files, and templates that the application uses at runtime.
Think about the difference between main and test source folders.
Classes in 'src/test/java' are compiled and used only for testing, not included in the main application runtime.
Controllers must be inside the base package or its subpackages.
Spring Boot scans the base package and its subpackages for components like controllers. Placing them inside 'com.example.app.controllers' ensures detection.
Where does Spring Boot expect configuration files to be?
Spring Boot loads configuration files from the classpath, which includes 'src/main/resources' but not 'src/main/java'. Placing the file in the wrong folder means it won't be found.
Think about what metadata about the jar or application might be stored.
The 'META-INF' folder contains metadata files such as 'MANIFEST.MF' that describe the jar file and its contents, important for packaging and deployment.