🟩 What is Spring Boot?
Spring Boot is a framework built on top of Spring that helps you create production-ready applications quickly.
Key Features
- No XML configuration required
- Embedded Tomcat/Jetty server
- Ready-to-use starters (dependencies)
- Auto-configuration
- Production-ready metrics
- Integration with Spring ecosystem
🟩 Why Spring Boot? (Advantages)
✔ Faster Development
No need to configure servers manually.
✔ Embedded Server
Your application runs simply using:
java -jar yourapp.jar
✔ Auto-Configuration
Spring Boot automatically configures beans depending on your application classpath.
✔ Microservices Friendly
Easy to build independent and scalable services.
🟩 Spring Boot Architecture (Simple Explanation)
Spring Boot follows layered architecture:
- Controller Layer – Handles API requests
- Service Layer – Business logic
- Repository Layer – Database operations (JPA/Hibernate)
- Model Layer – Java POJO classes
This structure improves readability, scalability, and maintainability.
🟦 How to Create a Spring Boot Project (Step-by-Step)
Use Spring Initializr:
https://start.spring.io
Select:
- Project: Maven
- Language: Java
- Spring Boot Version: Latest
- Dependencies:
- Spring Web
- Spring Boot DevTools
- Spring Data JPA
- H2 / MySQL
Click Generate, download the project, and open in IntelliJ or Eclipse.
🟩 Spring Boot Project Structure Explained
src/main/java └── com.example.demo ├── DemoApplication.java // Main class (entry point) ├── controller ├── service ├── repository └── model src/main/resources ├── application.properties └── static / templates
🟦 Main Application Class (Entry Point)
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
What @SpringBootApplication includes?
- @EnableAutoConfiguration
- @ComponentScan
- @Configuration
🟩 Create Your First REST API in Spring Boot
1. Create Controller Class
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Welcome to Spring Boot!";
}
}
Run Application → Visit
http://localhost:8080/api/hello
You will see the response.
🟩 POST API Example (JSON Input)
@PostMapping("/employee")
public Employee createEmployee(@RequestBody Employee emp) {
return emp;
}
JSON Body:
{
"name": "Piyush",
"role": "Developer"
}
🟦 Spring Boot Important Annotations (Must Know)
✔ @RestController
Defines a controller that returns JSON.
✔ @RequestMapping
Base URL mapping.
✔ @GetMapping, @PostMapping, @PutMapping, @DeleteMapping
HTTP operations.
✔ @Autowired
Dependency injection.
✔ @Entity
Represents database table.
✔ @Repository, @Service
Layer identification.
🟩 Working with Database (Spring Data JPA Example)
Entity Class
@Entity public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String role; }
Repository Interface
public interface EmployeeRepo extends JpaRepository<Employee, Long> {}
Service Example
@Service public class EmployeeService { @Autowired private EmployeeRepo repo; public List<Employee> getAllEmployees() { return repo.findAll(); } }
🟦 Spring Boot application.properties Example
@Service
public class EmployeeService {
@Autowired
private EmployeeRepo repo;
public List<Employee> getAllEmployees() {
return repo.findAll();
}
}