Comments 8
Вот тут https://habr.com/ru/companies/piter/articles/506872/ был обзор отличной книги в которой есть целая глава, посвященная созданию собственных стартеров. Правда, для 2-й версии бута
Чтобы Spring знал о дефолтных настройках стартера, необходимо их зачитать.
Можно объявить значения по умолчанию в файле OpenWeatherMapProperties, чтобы не городить огород с PostProcessor.
Всё верно - можно. Но тогда, для разработчика, работающего со стартером, чтобы просто посмотреть дефолтные настройки стартера потребуется разобраться в его коде, найти правильное место и, зная правила маппинга названий пропертей на поля конфигурационного класса, прописать их в своём клиентском приложении.
Гораздо проще, когда у стартера есть готовый yaml файл с конфигом, который можно скопипастить и проставить свои значения.
Кстати, действительно - совсем не обязательно городить PostProcessor. Бывают случаи когда yaml файл вообще добавляется для примера настроек и значений, с которыми работает стартер. То есть конфигурация из него не учитывается, а лежит чисто для облегчения копи-паста. Тоже рабочий вариант.
Да, Вы все верно пишите. Но что файл с дефолтным конфигом, что определение значений по умолчанию, все равно находится в коде стартера. И разработчику все равно придётся копаться в исходниках.
Самый лучший вариант - внести описание настроек и значений по умолчанию в документацию)
Хм... ну вообще-то есть намного более простой и стандартный способ - использовать spring-boot-configuration-processor. Тогда пользователь стартера увидит дефолтные значения в подсказках IDEA'и, когда будет их редактировать - они будут в файле spring-configuration-metadata.json и IDEA будет их отображать в подсказках пользователю.
Спасибо за статью!
Как создать свой Spring Boot 3 — стартер?