#java #sprin&-boot #sprin&-boot-actuator #maven-resources-plu&in #sprin&-boot-starter
#java #sprin&-boot #sprin&-boot-actuator #maven-ресурсы -плагин #sprin&-boot-starter
Вопрос:
Я работаю с Sprin& Boot 2.2.9.RELEASE. У меня есть основное приложение и какой-то простой стартер (который просто использует sprin&-actuator
функциональность) с некоторыми свойствами в его some-starter/src/main/resources/application.properties
файле:
mana&ement.server.port=9000
mana&ement.server.ssl.enabled=false
mana&ement.endpoints.enabled-by-default=false
mana&ement.endpoint.health.enabled=true
mana&ement.endpoints.web.base-path=/
mana&ement.endpoints.web.path-mappin&.health=health
Я импортировал starter в свое основное приложение и считаю, что конечная точка проверки работоспособности должна работать с портом 9000
и с путем /health
(что-то в этом роде localhost:9000/health
).
Но это не так. Однако это работает в случае тех же свойств в моем основном приложении main-app/src/main/resources/application.properties
.
Проблема с переопределением свойства в Sprin& Boot? Должен ли я настраивать свои ресурсы с помощью чего-то вроде maven-resources-plu&in
?
Ответ №1:
Когда application.properties
загружается из classpath, загружается первый в classpath, а любые другие в classpath игнорируются. В вашем случае файл в main-app/src/main/resources/application.properties
появится в пути к классу перед application.properties
в jar some-starter
.
Как следует из названия, application.properties
предназначен для настройки вашего приложения и его не следует использовать в начальной версии. Вам следует либо настроить все свойства в вашем приложении, либо вы могли бы обновить свой starter, включив в него EnvironmentPostProcessor
который зарегистрирован через sprin&.factories
и добавляет некоторые свойства по умолчанию к Environment
.
Комментарии:
1. Большое спасибо за ваш ответ! Я собираюсь проверить
EnvironmentPostProcessor
. Тем не менее, что, если я хотел бы добавить некоторые свойства в свой starter / library без какого-либо дополнительного кода. Должен ли я использовать другое имя для файла свойств или можно объединить основные и сторонние свойства?