CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Mục lục

Trang chủBlogCác điểm cuối của Spring ...
Java

Các điểm cuối của Spring Boot Actuator

5 phút đọc17/10/2025
CyStack Author
Chris Pham

Technical Writer

0 lượt xem
Reading Time: 5 minutes

Các điểm cuối của Spring Boot Actuatorcho phép chúng ta giám sát và tương tác với ứng dụng. Spring Actuator là một sub-module của Spring Boot, cung cấp sẵn các endpoint tích hợp mà chúng ta có thể bật hoặc tắt cho ứng dụng.

điểm cuối của Spring Boot Actuator

Các điểm cuối của Spring Boot Actuator

Các điểm cuối Actuator được exposed qua JMX và HTTP. Hầu hết chúng ta sử dụng các endpoint dựa trên HTTP vì chúng dễ dàng truy cập qua trình duyệt, lệnh CURL, shell script, v.v. Một số actuator endpoint hữu ích bao gồm:

  • beans: Endpoint này trả về danh sách tất cả các bean được cấu hình trong ứng dụng của chúng ta.
  • env: Cung cấp thông tin về các thuộc tính Spring Environment.
  • health: Hiển thị tình trạng sức khỏe của ứng dụng.
  • info: Hiển thị thông tin ứng dụng. Chúng ta có thể cấu hình nó trong các thuộc tính Spring environment.
  • mappings: Hiển thị danh sách tất cả các đường dẫn @RequestMapping.
  • shutdown: Cho phép chúng ta tắt ứng dụng một cách nhẹ nhàng (gracefully).
  • threaddump: Cung cấp thread dump của ứng dụng.

Bạn có thể tìm thấy danh sách đầy đủ các Spring Actuator Endpoints tại đây.

Bảo mật cho Spring Actuator Endpoints

Chỉ các endpoint healthinfo được expose mà không cần bất kỳ bảo mật nào. Để truy cập tất cả các endpoint khác, chúng ta cần cấu hình ứng dụng của mình với Spring Security. Việc này rất dễ thực hiện, chúng ta sẽ tìm hiểu nó trong phần sau của bài viết.

Kích hoạt Spring Actuator Endpoints

Khi chúng ta thêm dependency Spring Actuator vào dự án Spring Boot, nó tự động kích hoạt các actuator endpoint. Thêm dependency dưới đây vào ứng dụng Spring của bạn để kích hoạt Spring Boot Actuator Endpoints.


	org.springframework.boot
	spring-boot-starter-actuator


Bây giờ, khi bạn chạy ứng dụng, bạn sẽ thấy các actuator endpoint được mapped trong log:

2018-06-19 15:23:20.715  INFO 6493 --- [main] o.s.b.a.e.web.EndpointLinksResolver: Exposing 2 endpoint(s) beneath base path '/actuator'
2018-06-19 15:23:20.723  INFO 6493 --- [main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2018-06-19 15:23:20.724  INFO 6493 --- [main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)

Chú ý rằng chỉ hai endpoint – healthinfo đã được mapped.

Các điểm cuối của Spring Boot Actuator

Các điểm cuối của Spring Boot Actuator

Bạn có nhận thấy rằng không có dữ liệu nào trong /actuator/info không? Đó là vì chúng ta chưa cấu hình chúng. Chỉ cần thêm các thuộc tính sau vào file application.properties của bạn:

info.app.name=Spring Actuator Example
info.app.java.version=10
info.app.type=Spring Boot

Khởi động lại ứng dụng và bạn sẽ nhận được output chứa thông tin cấu hình.

Các điểm cuối của Spring Boot Actuator

Tùy chỉnh Base Path của Actuator Endpoints

Mặc định, base-path của các actuator endpoint là /actuator. Chúng ta có thể thay đổi nó thành bất kỳ giá trị nào khác bằng cách đặt thuộc tính management.endpoints.web.base-path trong file application.properties:

management.endpoints.web.base-path=/management

Hiển thị các Actuator Endpoints khác

Chúng ta có thể bật và tắt các actuator endpoint khác thông qua các file thuộc tính. Nếu bạn muốn bật tất cả các actuator endpoint, hãy thêm thuộc tính sau:

management.endpoints.web.exposure.include=*

Để bật chỉ các actuator endpoint cụ thể, hãy cung cấp danh sách các id endpoint:

management.endpoints.web.exposure.include=health,info,beans,env

Cấu hình Spring Security cho Actuator Endpoints

Lưu ý rằng chúng ta cần thêm Spring Security vào ứng dụng để kích hoạt các endpoint bổ sung vì tất cả các endpoint khác đều yêu cầu ít nhất xác thực cơ bản. Thêm dependency sau cho Spring Security vào ứng dụng của bạn:


	org.springframework.boot
	spring-boot-starter-security


Ngoài ra, hãy thêm tên người dùng và mật khẩu Spring Security vào file thuộc tính ứng dụng:

spring.security.user.name=pankaj
spring.security.user.password=pankaj

Khởi động lại ứng dụng và bạn sẽ thấy các endpoint bổ sung được mapped trong log:

2018-06-19 16:18:22.211  INFO 6627 --- [main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/management/beans],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2018-06-19 16:18:22.212  INFO 6627 --- [           main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/management/env],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)
2018-06-19 16:18:22.212  INFO 6627 --- [           main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/management/env/{toMatch}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)

Bây giờ, khi bạn cố gắng truy cập các actuator endpoint được bảo mật, bạn sẽ phải cung cấp thông tin đăng nhập.

Các điểm cuối của Spring Boot Actuator

Các điểm cuối của Spring Boot Actuator

Spring Actuator Custom Endpoints

Một trong những tính năng tuyệt vời của Spring Framework là khả năng mở rộng rất dễ dàng. Chúng ta có thể tạo các custom actuator endpoint của riêng mình bằng cách sử dụng annotation @Endpoint trên một class. Sau đó, chúng ta phải sử dụng các annotation @ReadOperation, @WriteOperation hoặc @DeleteOperation trên các method để expose chúng như một actuator endpoint bean. Chúng ta có thể tạo các Endpoint đặc trưng theo công nghệ bằng cách sử dụng các annotation @JmxEndpoint@WebEndpoint.

Đây là một ví dụ về custom Spring Actuator endpoint của chúng ta:

package com.journaldev.spring;

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

@Endpoint(id="myendpoint")
@Component
public class MyCustomEndpoints {

	@ReadOperation
	@Bean
	public String hi() {
		return "Hi from custom endpoint";
	}
}

Bạn có để ý đến endpoint id không? Chúng ta cũng cần cấu hình nó trong danh sách các actuator endpoint để được bật. Cập nhật các thuộc tính sau trong file application.properties:

management.endpoints.web.exposure.include=health,info,beans,env,myendpoint

Bây giờ, khi bạn khởi động ứng dụng, hãy kiểm tra endpoint mới này được mapped trong log:

2018-06-19 17:06:59.743  INFO 6739 --- [main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/management/myendpoint],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map)

Kết Luận

Spring Boot Actuator là một module quản lý và cung cấp thông tin sẵn sàng cho môi trường production. Chúng ta có thể dễ dàng mở rộng nó để thêm các API của riêng mình và quản lý ứng dụng một cách hiệu quả. Việc nắm vững Actuator giúp bạn có cái nhìn sâu sắc về ứng dụng, từ việc theo dõi sức khỏe tổng thể, kiểm tra các cấu hình môi trường, đến phân tích hiệu suất và thậm chí là thực hiện các thao tác quản lý trực tiếp.

Về tác giả

Chris Pham
Chris PhamTechnical Writer

I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information. @#@ Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.

Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn

Thảo luận (0)

Đăng nhập để thảo luận

Bài viết liên quan