Вытащить все параметры из application.yaml файла
Всем привет!
Как многие, работающие со Spring, знают, что у него есть файлы конфигурации откуда можно вытаскивать настроечные параметры. В моём случае это application.yaml.
У меня появилась потребность в том, чтобы во время работы приложения вытаскивать из него все конфиги, которые там есть, и возвращать их куда-то там. В общем, Controller должен возвращать Map с списком всех параметров из application.yaml. Как это можно сделать?
Простое считывание YAML-файла и преобразование его в JSON или использование @ConfigurationProperties не совсем подходит, но если это единственное решение задачи, то не могли бы вы написать об этом, чтобы я хотя бы не искал других путей решения задачи.
Ответы (1 шт):
В springboot включите actuator.
Для этого добавьте в зависимости проекта:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
После этого нужно только включить web endpoint (env), который показывает конфигурацию (по умолчанию он не выставляется через web). Для этого в application.yaml добавляем:
management:
endpoints:
web:
exposure:
include: "health,env"
И теперь (если сервер слушает на порту 8080) по адресу http://localhost:8080/actuator/env можно увидеть всю конфигурацию, включая то, откуда параметр пришел, т.е. из какого файла, или из командной строки или из окружения и т.д.
Перед тем как это использовать в проде обязательно прочитайте доку по actuator.