Рубрики
Без рубрики

Пользовательская информация в конечной точке Spring Boot Info

Узнайте, как добавить пользовательские данные в конечную точку Spring Boot Actuator /info.

Автор оригинала: baeldung.

1. Обзор

В этой краткой статье мы рассмотрим, как настроить конечную точку приводов Spring Boot /info .

Пожалуйста, обратитесь к этой статье, чтобы узнать больше о приводах при загрузке и о том, как их настроить.

2. Статические свойства в/info

Если у нас есть некоторая статическая информация, такая как имя приложения или его версия, которая не меняется в течение длительного времени, то неплохо добавить эту информацию в наш файл application.properties :

## Configuring info endpoint
info.app.name=Spring Sample Application
info.app.description=This is my first spring boot application
info.app.version=1.0.0

Это все, что нам нужно сделать, чтобы сделать эти данные доступными на конечной точке /info . Spring автоматически добавит все свойства с префиксом info в конечную точку /info :

{
  "app": {
    "description": "This is my first spring boot application",
    "version": "1.0.0",
    "name": "Spring Sample Application"
  }
}

3. Переменные среды в/info

Теперь давайте представим переменную Environment в нашей /info конечной точке:

info.java-vendor = ${java.specification.vendor}

Это предоставит поставщику Java доступ к нашей конечной точке /info :

{
  "app": {
    "description": "This is my first spring boot application",
    "version": "1.0.0",
    "name": "Spring Sample Application"
  },
  "java-vendor": "Oracle Corporation",
}

Обратите внимание, что все переменные среды уже доступны в конечной точке /env . Однако то же самое можно быстро обнаружить и на конечной точке /info .

4. Пользовательские Данные Из Уровня Сохраняемости

Теперь давайте сделаем еще один шаг вперед и представим некоторые полезные данные из хранилища персистентности.

Для этого нам необходимо реализовать интерфейс Info Contributor и переопределить метод contribute() :

@Component
public class TotalUsersInfoContributor implements InfoContributor {

    @Autowired
    UserRepository userRepository;

    @Override
    public void contribute(Info.Builder builder) {
        Map userDetails = new HashMap<>();
        userDetails.put("active", userRepository.countByStatus(1));
        userDetails.put("inactive", userRepository.countByStatus(0));

        builder.withDetail("users", userDetails);
    }
}

Во-первых, нам нужно пометить реализующий класс как @Component . Затем добавьте необходимые сведения в экземпляр Info.Builder , предоставленный методу contribute () .

Этот подход обеспечивает нам большую гибкость в отношении того, что мы можем предоставить нашей конечной точке /info :

{
  ...other /info data...,
  ...
  "users": {
    "inactive": 2,
    "active": 3
  }
}

5. Заключение

В этом уроке мы рассмотрели различные способы добавления пользовательских данных в нашу конечную точку /info .

Обратите внимание, что мы также обсуждаем, как добавить информацию git в конечную точку /info .

Как всегда, полный исходный код этой статьи можно найти на GitHub .