Essential Spring Boot Practices for Building Robust Microservices
This guide outlines essential Spring Boot best practices for microservices, covering monitoring with Admin and Grafana, Actuator metrics, centralized logging via ELK, clear API docs using Swagger, YApi or smart-doc, build-info transparency, and keeping dependencies up-to-date.
Preface
In this article we share the "golden rules" for building microservice applications with Spring Boot, and invite contributions.
System Runs on a White Box
Monitoring and visualization tools such as Spring Boot Admin or Grafana can reveal most runtime issues, provide charts and alerts, and are especially important in microservice architectures.
Spring Boot Actuator exposes metrics; adding the following dependency enables it:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>The metric http.server.requests is a key indicator, offering request count and response time statistics.
For storing actuator metrics, InfluxDB and Prometheus are mature choices; Prometheus scrapes endpoints, InfluxDB requires REST calls. For small projects, Spring Boot Admin (in‑memory) can be used.
Remember to block external exposure in production environments.
Logging
Logging is often overlooked during development but becomes critical in operations; code reviews and testing should treat logs as important evidence.
Adopt a unified logging standard for microservices, use MDC to trace requests across instances and capture execution time.
Centralized log storage is recommended; the Elastic Stack (ELK) is widely adopted.
<!-- integrate logstash -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.3</version>
</dependency>For small projects or limited expertise, cloud provider log services (e.g., Qiniu LogKit, LogEasy) are cost‑effective alternatives.
Clear API Documentation
REST APIs in a microservice landscape require accurate, timely documentation.
Swagger is a popular tool for generating online API docs with minimal configuration.
For broader DevOps integration, YApi offers a powerful API management platform with Swagger import, reducing repetitive work.
Dubbo services can use smart-doc, which generates documentation for both REST and Dubbo RPC interfaces with zero intrusion.
Application Transparency
Rapid delivery demands exposing version and change information; Spring Boot’s Maven plugin can generate build info.
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>Access /actuator/info to view build details.
SpringBootAdmin can list registered applications and show version or commit info (requires git-commit-id-plugin).
Keep Dependencies Up-to-Date
Spring Boot and Spring Cloud release new versions monthly, bringing features, bug fixes, faster startup, and lower memory usage, making them well‑suited for containerized deployments.
Example of using the latest stable parent and dependency management:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Refer to Spring Cloud version documentation for details.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Architecture Diary
Committed to sharing original, high‑quality technical articles; no fluff or promotional content.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
