我们最近在一个应用程序中将Spring-Boot版本升级到2.1.2。 当我点击以下URL时,我注意到JSON格式发生了变化: http://localhost:xxxx/health。
更改后的结构为: { 健康:{ 状态:“ UP” } }
以前是: { 状态:“ UP” }
我的问题是; 1.为什么要对其进行修改? 2.是否有任何配置可以保持以前的结构?
答案 0 :(得分:5)
随着Spring Boot 2的发布,对Actuator进行了重新设计,并添加了新的令人兴奋的端点。
/actuator/health
端点用于检查正在运行的应用程序的运行状况或状态。监视软件通常会执行此操作,以提醒我们正在运行的实例出现故障或由于其他原因而变得不正常。例如。数据库的连接问题,磁盘空间不足……
http://localhost:8080/actuator/health
{
status: "UP"
}
Monitoring and Management over HTTP
如果您正在开发Web应用程序,则Spring Boot Actuator会自动配置所有启用的端点以通过HTTP公开。默认约定是使用带有/ actuator前缀的终结点的ID作为URL路径。 例如,健康状态显示为/ actuator / health。提示:Spring MVC,Spring WebFlux和Jersey本身支持执行器。
出于安全目的,默认情况下禁用/ health和/ info以外的所有执行器。 management.endpoints.web.exposure.include属性可用于启用执行器。
如果Spring Security位于类路径上,并且不存在其他WebSecurityConfigurerAdapter,则除/ health和/ info以外的所有执行器均由Spring Boot自动配置保护。如果定义了自定义WebSecurityConfigurerAdapter,则Spring Boot的自动配置将退出,您将完全控制执行器访问规则。
执行器端点使您可以监视应用程序并与之交互。 Spring Boot包含许多内置端点,您可以添加自己的端点。例如,运行状况端点提供基本的应用程序运行状况信息。
每个端点都可以启用或禁用。这控制了是否创建了端点以及它的bean在应用程序上下文中是否存在。为了可以远程访问,端点还必须通过JMX或HTTP公开。大多数应用程序选择HTTP,其中终结点的ID和/ actuator的前缀映射到URL。 例如,默认情况下,运行状况终结点映射到/ actuator / health。
Spring Boot 2.0改进了从许多端点返回的JSON有效负载。
许多终结点现在都具有JSON,可以更准确地反映基础数据。 例如,/ actuator / conditions端点(在Spring Boot 1.5中为/ autoconfig)现在具有顶级上下文键,可以按ApplicationContext对结果进行分组。
要检索应用程序的运行状况,请向/ actuator / health发出GET请求,如以下基于curl的示例所示:
$ curl 'http://localhost:8080/actuator/health' -i -X GET
有用信息:Baeldung