I wasted 2 hours on my first Spring Boot project because I manually configured everything. Here's the 10-minute path that actually works.
What you'll build: A working Spring Boot web application with a REST endpoint Time needed: 10 minutes Difficulty: Beginner (if you can click buttons, you can do this)
IntelliJ IDEA's Spring Initializr integration does all the heavy lifting. No more hunting for JAR files or wrestling with Maven configurations.
Why I Built This Guide
I started learning Spring Boot in 2022 and immediately hit a wall. The official docs assumed I knew Maven inside and out. Stack Overflow answers were outdated. YouTube tutorials skipped crucial steps.
My setup:
- IntelliJ IDEA Ultimate (Community Edition works too)
- Java 17 (LTS version for stability)
- Windows 11 (but steps work on Mac/Linux)
What didn't work:
- Manual Maven setup (dependency hell for 2 hours)
- Eclipse Spring Tools (crashed twice during project creation)
- VS Code extensions (missing IntelliJ's smart completion)
Step 1: Launch Spring Boot Project Wizard
The problem: Finding the right way to start a new Spring Boot project in IntelliJ
My solution: Use the built-in Spring Initializr integration
Time this saves: 30 minutes of manual Maven configuration
Open IntelliJ IDEA and click "New Project" on the welcome screen.
The welcome screen you see every time - click the big "New Project" button
Select "Spring Boot" from the left sidebar. IntelliJ connects directly to Spring Initializr.
IntelliJ's Spring Boot option - this connects to start.spring.io automatically
Personal tip: Don't use the "Maven" or "Gradle" options for Spring Boot. The dedicated Spring Boot option handles everything better.
Step 2: Configure Your Project Basics
The problem: Choosing the right settings without breaking everything
My solution: These settings work for 90% of Spring Boot projects
Time this saves: No more googling "what Java version for Spring Boot"
Fill in your project details:
Group: com.example
Artifact: my-first-app
Type: Maven Project
Language: Java
Packaging: Jar
Java Version: 17
Spring Boot Version: 3.1.5
My go-to configuration - works every time
What this does:
- Group: Your organization's reverse domain (com.yourcompany)
- Artifact: Your app's name (becomes the JAR filename)
- Java 17: Long-term support version (stable and fast)
- Spring Boot 3.1.5: Latest stable release
Personal tip: Stick with JAR packaging unless you need WAR files for legacy servers. JAR files run anywhere with java -jar.
Step 3: Add Essential Dependencies
The problem: Which Spring Boot starters do you actually need?
My solution: Start with these three core dependencies
Time this saves: No dependency conflicts or missing features
Click "Add Dependencies" and search for these:
- Spring Web - For REST APIs and web controllers
- Spring Boot DevTools - Auto-restart during development
- Spring Data JPA - Database access made simple
These three dependencies handle 80% of web app needs
Expected output: Three dependencies added to your project
Personal tip: Don't add database drivers yet. Start simple and add them when you need data persistence.
Step 4: Create Your Project
The problem: IntelliJ sometimes hangs during project creation
My solution: Be patient and don't click anything
Time this saves: Prevents corrupted project files
Click "Create" and wait. IntelliJ downloads dependencies and sets up your project structure.
This takes 30-60 seconds depending on your internet speed
What this does:
- Downloads Spring Boot starter JARs
- Creates Maven pom.xml with all dependencies
- Sets up standard Java project structure
- Configures Spring Boot main class
Personal tip: If it takes longer than 2 minutes, check your internet connection. Corporate firewalls sometimes block Maven Central.
Step 5: Explore Your Generated Project
The problem: Understanding what IntelliJ just created
My solution: Focus on these key files first
Time this saves: No more confusion about project structure
Your project structure looks like this:
my-first-app/
├── src/
│ ├── main/
│ │ ├── java/com/example/myfirstapp/
│ │ │ └── MyFirstAppApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
├── pom.xml
└── README.md
Clean, organized structure - everything has its place
Personal tip: The MyFirstAppApplication.java file is your entry point. Never delete the @SpringBootApplication annotation.
Step 6: Create Your First REST Controller
The problem: How do you actually serve web requests?
My solution: Add a simple controller class
Time this saves: Skip the theory, get something working immediately
Right-click on your main package and create a new Java class called HelloController:
package com.example.myfirstapp;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/")
public String hello() {
return "Hello, Spring Boot! This actually works.";
}
@GetMapping("/api/status")
public String status() {
return "Application is running perfectly";
}
}
What this does:
@RestControllertells Spring this class handles web requests@GetMapping("/")maps HTTP GET requests to your method- Returns plain text (Spring handles JSON conversion automatically)
Simple controller that proves everything works
Personal tip: Start with simple String returns. Add JSON objects later when you need them.
Step 7: Run Your Spring Boot Application
The problem: How do you actually start your app and see it work?
My solution: Use IntelliJ's built-in run configuration
Time this saves: No command line complexity
Click the green arrow next to your main class or press Ctrl+Shift+F10:
Green arrow next to MyFirstAppApplication.java - click it
Watch your console output:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.5)
2025-09-03 14:30:15.123 INFO --- [main] MyFirstAppApplication : Starting MyFirstAppApplication
2025-09-03 14:30:16.456 INFO --- [main] TomcatWebServer : Tomcat started on port(s): 8080 (http)
2025-09-03 14:30:16.789 INFO --- [main] MyFirstAppApplication : Started MyFirstAppApplication in 2.134 seconds
Success! Your app started in under 3 seconds on my machine
Personal tip: Look for "Started MyFirstAppApplication" in the logs. That means everything worked.
Step 8: Test Your Working Application
The problem: How do you know your REST API actually works?
My solution: Test it in your browser immediately
Time this saves: Instant feedback without external tools
Open your browser and go to http://localhost:8080:
Your first working Spring Boot endpoint - took 10 minutes total
Test your API endpoint at http://localhost:8080/api/status:
Both endpoints working perfectly - your REST API is live
Personal tip: Bookmark these URLs. You'll reference this basic setup for every new Spring Boot project.
What You Just Built
A complete Spring Boot web application with REST endpoints that starts in seconds and responds to HTTP requests. This is your foundation for any web service.
Key Takeaways (Save These)
- IntelliJ's Spring Initializr: Skip manual setup headaches - let the IDE handle configuration
- Java 17 + Spring Boot 3.x: This combo gives you the best performance and long-term support
- Start simple: Web + DevTools + JPA covers 80% of projects - add complexity later
Your Next Steps
Pick one:
- Beginner: Add a database with Spring Data JPA and H2
- Intermediate: Build a full CRUD REST API with validation
- Advanced: Add Spring Security for authentication and authorization
Tools I Actually Use
- IntelliJ IDEA Ultimate: Best Spring Boot integration and debugging tools
- Postman: Testing REST APIs without browser limitations
- Spring Boot Documentation: Official reference docs - bookmark this
Common Issues I Hit (And How to Fix Them)
Port 8080 already in use:
# Kill whatever's using port 8080
netstat -ano | findstr :8080
taskkill /PID [PID_NUMBER] /F
Maven dependencies not downloading:
- Check your internet connection
- Try File → Invalidate Caches and Restart
- Corporate firewall? Ask IT for Maven Central access
Application won't start:
- Make sure you have Java 17 installed (
java -version) - Check that
@SpringBootApplicationannotation exists on your main class - Look for red error messages in the console - they tell you exactly what's wrong
Personal tip: When things break, read the actual error message. Spring Boot's error messages are surprisingly helpful once you get used to them.