Java Spring控制器和端点之间的差异

Java Spring控制器和端点之间的差异,java,spring,spring-boot,spring-mvc,spring-boot-actuator,Java,Spring,Spring Boot,Spring Mvc,Spring Boot Actuator,SpringBootActuator提供了一些端点,比如健康、度量和信息。它还允许我们编写自己的自定义端点 我需要将一些Dropwizard度量数据作为端点公开。最新的Spring boot支持dropwizard指标,但它不符合我的要求,因此我计划拥有自己的web端点/stats 但是现在我无法决定它应该是一个普通的控制器还是一个定制的执行器端点。这两个术语有什么区别 PS:这个问题似乎有一定的观点基础,但答案应该足够简单。端点是控制器的一个更具体或独特的版本 端点不依赖于视图(如JSP)以H

SpringBootActuator提供了一些端点,比如健康、度量和信息。它还允许我们编写自己的自定义端点

我需要将一些Dropwizard度量数据作为端点公开。最新的Spring boot支持dropwizard指标,但它不符合我的要求,因此我计划拥有自己的web端点
/stats

但是现在我无法决定它应该是一个普通的
控制器
还是一个定制的执行器
端点
。这两个术语有什么区别


PS:这个问题似乎有一定的观点基础,但答案应该足够简单。

端点是控制器的一个更具体或独特的版本

端点不依赖于视图(如JSP)以HTML呈现模型数据,而是简单地返回要直接写入响应体的数据(类似于在Controller中执行@ResponseBy)

由于以下原因,致动器端点是一个更好的选择:

  • 端点用于执行在HTTP上打印对象(Json)的高度特定任务,这正是您在这里想要做的
  • 将monitor-n-manage代码与特定于应用程序的代码分开
  • 保持事物的整洁和连贯性

  • 据我所知(不确定,所以只是一个注释),
    端点
    是spring boot中某种程度上的“ootb监控框架”的入口点,它包含
    HealthIndicator
    等类,“原样”不是控制器。通过使
    端点成为
    MvcEndpoint
    ,可以(!)添加一些控制器功能,因为通过http提供json格式数据的概念与
    @(Rest)控制器提供的概念非常接近。我认为,你可以在文档中找到更多的见解。希望这有帮助吗?另一个微妙的区别:
    @Endpoints
    有时可以暴露给JMX(与REST客户端/WebFlux等相比)
    @Controller
    用于Spring MVC world。