Spring Boot Actuator: реализация пользовательских конечных точек, получение ввода

Операции на конечной точке получают ввод через свои параметры. При отображении через веб значения этих параметров берутся из параметров URL-адреса запроса и из JSON тела запроса. При отображении через JMX параметры сопоставляются с параметрами операций MBean. Параметры обязательны по умолчанию. Их можно сделать необязательными, пометив их @org.springframework.lang.Nullable.

Каждое корневое свойство в JSON теле запроса может быть сопоставлено с параметром конечной точки. Рассмотрим следующее JSON тело запроса:

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

Это можно использовать для вызова операции записи, которая принимает параметры String name и int counter.

Поскольку конечные точки не зависят от технологии, в сигнатуре метода могут быть указаны только простые типы. В частности, объявление одного параметра с пользовательским типом, определяющим имя и свойства счетчика, не поддерживается.

Чтобы разрешить сопоставление ввода с параметрами метода операции, код Java, реализующий конечную точку, должен быть скомпилирован с -parameters, а код Kotlin, реализующий конечную точку, должен быть скомпилирован с -java-parameters. Это произойдет автоматически, если вы используете плагин Spring Boot Gradle или Maven и spring-boot-starter-parent.

Преобразование типа ввода

Параметры, передаваемые в методы работы конечной точки, при необходимости автоматически преобразуются в требуемый тип. Перед вызовом метода операции входные данные, полученные с помощью JMX или HTTP-запроса, преобразуются в требуемые типы с использованием экземпляра ApplicationConversionService, а также любого компонента Converter или GenericConverter, квалифицированного как @EndpointConverter.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки