Goal: Create a Basic Web Server in Spring Boot
According to this All we have to do it go to this website

I think gradle and maven are package managers like npm in Javascript
My friend Gulshan says use maven
Project Structure : Explained by Chat-gpt
src/
│
├── main/
│ ├── java/
│ │ └── in/
│ │ └── abhi8290/
│ │ └── helloworld/
│ │ ├── HelloWorldApplication.java
│ │ └── HelloController.java
│ │
│ └── resources/
│ ├── static/
│ ├── templates/
│ └── application.properties
🔍 Detailed Breakdown
📁 src/main/java/in/abhi8290/helloworld/
Your Java source code lives here.
-
✅
HelloWorldApplication.java- The entry point of your Spring Boot app.
- Contains the
main()method. - Annotated with
@SpringBootApplication.
-
✅
HelloController.java- A REST controller that maps HTTP routes (like
/) to Java methods. - Annotated with
@RestControllerand uses@GetMapping.
- A REST controller that maps HTTP routes (like
📁 src/main/resources/
This is where non-Java files like configuration and static assets go.
📄 application.properties
- Configuration file.
- You can define:
- Server port:
server.port=8081 - DB connection settings
- Logging levels, etc.
- Server port:
📁 static/
- Anything here is served as static files (like
index.html, CSS, JS, images). - Example:
static/style.css→ served athttp://localhost:8080/style.css
📁 templates/
- For dynamic HTML templates using Thymeleaf, FreeMarker, etc.
- Used if you’re building server-side rendered HTML instead of just APIs.
- Example:
templates/index.html
🧠 Spring Boot Knows This Convention
Spring Boot automatically looks for files and routes in these locations:
- Controllers: under
java/... - Static files: in
resources/static - HTML templates: in
resources/templates - Configs: in
resources/application.properties
This is called convention over configuration — you don’t need to tell Spring Boot where things are if you follow this structure.
Questions :
- How to arrange the files and folder in java