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) { MapuserDetails = 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 .