Spring boot actuator端点配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaomingyang/article/details/84309617

1. 端点配置

端点自动缓存对不接收任何参数的读写操作的响应,配置端点将缓存响应的时间量,使用cache.time-to-live属性;下面的示例将beans端点缓存的生存时间设置为10秒。
application.properties:

management.endpoint.beans.cache.time-to-live=10s
  • 前缀==management.endpoint.<name>==是配置端点的唯一标示。
  • 在进行认证的HTTP请求时,Principal 被认为是端点的输入,因此不会被缓存。

2.端点的发现页配置

在发现页中添加所有端点的链接,默认情况下发现页的地址在 /actuator下:

http://localhost:7001/actuator

当配置自定义管理上下文路径时,发现页的路径自定的从 /actuator转移到管理上下文的根路径;例如:如果管理上下文的根路径是 /management,那么发现页的根路径就变成了 /management ;当管理上下文的根路径设置为 / 的时候,发现页就会被禁用防止和其它的映射冲突。

3.跨域支持

Cross-origin resource sharing (CORS) 是一个W3C规范,这使你可以灵活的指定什么样的跨域请求被授权。如果你使用的是Spring MVC或者Spring WebFlux,执行器的Web端点可以配置为支持这样的场景。

CORS支持默认是关闭的,并且仅在 management.endpoints.web.cors.allowed-origins 属性设置之后才起作用,下面的配置允许从example.com域中获取GET或者POST请求。

management.endpoints.web.cors.allowed-origins=http://example.com
management.endpoints.web.cors.allowed-methods=GET,POST

查看CorsEndPointProperties有关选项的完整列表。

4.自定义端点

如果你添加一个 @Bean 注解和 @EndPoint 注解,任何注解方法使用 @ReadOperation ,@WriteOperation,或者 @DeleteOperation 自动的使用JMX曝光,在Web应用程序中,也可以通过HTTP曝光;端点可以使用HTTP通过Jersy,Spring MVC, Spring WebFlux来曝光。

你还可以通过使用 @JmxEndpoint 或者 @WebEndpoint编写特定于技术的端点。这些端点仅限于各自的技术。例如:@WebEndpoint 端点只能通过HTTP来曝光而不能通过JMX。

你可以通过==@EndpointWebExtension == 和 @EndpointJmxExtension 编写特定于技术的扩展,这些注释允许您提供特定于技术的操作,以增加现有端点。

最后,如果您需要访问Web框架特定的功能,您可以实现Servlet或Spring@Controller和@RestController端点,代价是它们不能通过JMX获得,或者当使用不同的Web框架时。

4.1接收输入

端点通过其参数接收输入的操作,当通过web来曝光时,这些参数的值取自URL的查询参数和JSON请求体。当通过JMXL来曝光时,参数映射到MBeans操作的参数,参数默认是必须的额,他们可以通过 @org.springframework.lang.Nullable 注解来选择他们。

JSON请求体中的每个根属性可以映射到端点的参数。考虑以下JSON请求主体:

{
	"name": "test",
	"counter": 42
}

这可以用来调用一个带有 String nameint counter参数的写操作。

  • 因为端点是技术不可知的,所以只能在方法签名中指定简单类型。特别地,不支持声明具有 namecounter属性的自定义类型的单个参数。
  • 允许输入映射到操作方法的参数,实现端点的Java代码应该编译为 parameters ,实现终结点的Kotlin代码应该编译为 -java-parameters ,如果你正在使用Spring boot的渐变插件或者如果你使用Maven和 spring-boot-starter-parent,那么这会自动发生。

输入类型转换:
传递给端点操作方法的参数为,如果是必须的,自动转换为需要的类型;在调用操作方法之前,通过JMX或者HTTP请求接收到的输入参数将会通过实例 ApplicationConversionService 转换为所需要的类型。

猜你喜欢

转载自blog.csdn.net/yaomingyang/article/details/84309617