Microservices have become the backbone of modern software architecture, enabling organizations to build scalable and resilient applications. Spring Boot is a popular framework for developing microservices due to its simplicity, rich ecosystem, and powerful features. In this guide, we’ll walk you through the process of setting up a basic Spring Boot microservice.

Prerequisites
Before starting, ensure you have the following installed on your system:
- Java Development Kit (JDK): Version 8 or later.
- Maven or Gradle: Build tools for managing dependencies.
- Integrated Development Environment (IDE): IntelliJ IDEA, Eclipse, or VS Code.
- Postman or any API testing tool.
Step 1: Create a Spring Boot Project
- Visit Spring Initializr
Go to Spring Initializr to generate a new Spring Boot project. - Configure Project Settings
- Project: Maven or Gradle.
- Language: Java.
- Spring Boot Version: Latest stable version (e.g., 3.x).
- Dependencies: Add the following:
- Spring Web (for REST APIs).
- Spring Boot Actuator (for monitoring and metrics).
- Spring Data JPA (for database access).
- H2 Database (in-memory database for development/testing).
- Download and Extract
Click on “Generate” to download the project as a zip file. Extract it to your desired directory. - Import into IDE
Open your IDE and import the project as a Maven or Gradle project.
Step 2: Define the Application Structure
A typical Spring Boot microservice has the following package structure:
src/main/java/com/example/microservice
├── controller
├── service
├── repository
├── model
- Controller: Handles incoming requests and sends responses.
- Service: Contains business logic.
- Repository: Manages database operations.
- Model: Represents the data structure.
Step 3: Create a REST API
1. Define a Model
Create a User entity in the model package:
package com.example.microservice.model;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@Entity
public class User {
@Id
private Long id;
private String name;
private String email;
// Getters and Setters
}
2. Set Up the Repository
Create a UserRepository in the repository package:
package com.example.microservice.repository;
import com.example.microservice.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
3. Implement the Service
Create a UserService in the service package:
package com.example.microservice.service;
import com.example.microservice.model.User;
import com.example.microservice.repository.UserRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
public User saveUser(User user) {
return userRepository.save(user);
}
}
4. Create the Controller
Create a UserController in the controller package:
package com.example.microservice.controller;
import com.example.microservice.model.User;
import com.example.microservice.service.UserService;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@PostMapping
public User createUser(@RequestBody User user) {
return userService.saveUser(user);
}
}
Step 4: Configure Application Properties
Update the application.properties file in the src/main/resources folder:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Step 5: Run and Test the Application
- Run the Application
In your IDE, right-click on the main application class (e.g.,MicroserviceApplication) and select “Run”. - Test the Endpoints
Use Postman or another API testing tool:- GET
/api/users: Fetch all users. - POST
/api/users: Create a new user with a JSON body.
- GET
Example JSON for POST:
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
}
Step 6: Add Monitoring and Metrics
Enable Actuator endpoints for monitoring. Add the following to application.properties:
management.endpoints.web.exposure.include=*
Access metrics at: http://localhost:8080/actuator/metrics
Conclusion
You’ve successfully created a basic Spring Boot microservice! From here, you can enhance the service by adding features such as API security (using Spring Security), database integration with MySQL or PostgreSQL, and deploying to a cloud platform. Microservices architecture offers immense flexibility and scalability—explore its full potential by integrating advanced tools and practices.
Leave a comment