Spring 控制器和端点之间的区别

Difference between Spring controller and Endpoint

Spring boot actuator 提供一些端点,如健康、指标、信息。它还允许我们编写自己的自定义端点。

我有一个要求,我需要将一些 Dropwizard 指标统计数据公开为端点。最新的 Spring-boot 确实支持 dropwizard 指标,但它不符合我的要求,所以我打算拥有自己的网络端点 /stats

但现在我无法决定它应该是普通的 Controller 还是自定义的执行器 Endpoint。这两个词有什么区别?

PS: 问题似乎是基于意见,但答案应该足够简单。

端点是控制器的更具体或特殊的版本。

Rather than rely on a view (such as JSP) to render model data in HTML, an endpoint simply returns the data to be written directly to the body of the response(Similar to doing @ResponseBody in Controller).

Actuator Endpoint 是更好的选择,原因如下:

  1. 端点旨在执行在 HTTP 上打印对象 (Json) 的高度特定任务,这正是您想要在此处执行的操作。
  2. 将 monitor-n-manage 代码与特定于应用程序的代码分开。
  3. 让事情变得更干净、更有凝聚力