У меня есть внутренний файл application.yml , расположенный в ресурсах classpath со следующими полями:
redis:
hostname: localhost
port: 6379
database: 0
password:
Существует внешний файл конфигурации: config.properties . Он определяет некоторые поля, которые должны быть переопределены в контексте моего сервера. Файл config.properties :
redis.hostname = db.example.com
redis.password = my_password
Приложение не запускается, так как не может прочитать свойство redis.port в файле конфигурации. Я сомневаюсь, что Spring не сохраняет поля источника свойства ( redis ) полностью, если он уже нашел некоторые поля, определенные во внешнем файле (имя хоста, в данном случае пароль).
Я запускаю приложение, используя следующую команду:
java -jar -Dspring.config.location=file:///home/username/config.properties application.jar
Как заставить Spring правильно переопределить внутренний файл конфигурации, чтобы он переопределял только дополнительные свойства (redis.hostname, redis.password), но при этом сохранял другие поля, определенные во внутреннем файле (например, redis.port, redis). база данных), но не определена во внешнем файле?
P.S .: Я знаю, что это происходит, потому что когда я добавляю свойство redis.port = 6379 во внешний файл конфигурации, приложения работают правильно.