У меня есть файл Spring Boot application.yml, структурированный как:
mapValues:
key1: value1
key2: value2
Теперь я хочу запустить приложение в другом профиле, где эти ключи / значения должны быть заменены другими ключами в application-profile.yml как:
mapValues:
key3: value3
key4: value4
Кажется, что Spring автоматически объединяет эти два профиля yml, и приложение видит:
mapValues:
key1: value1
key2: value2
key3: value3
key4: value4
Я не хочу оставлять key1 и key, вместо этого просто сохраняю key3 и key4. Как этого добиться?
Первый находится в профиле по умолчанию с application.yml. Кажется, не существует способа полностью заменить значение карты, предоставленное из профиля по умолчанию.
Итак, если по умолчанию используется первый, key1 и key2 должны быть null при активации профиля. Эти два ключа не должны иметь значений
Я не это вижу. Эти ключи с их значениями остаются. Я потенциально могу изменить значение этих ключей в профиле по умолчанию с новым профилем, но не могу удалить эти ключи.




То, что вы указываете в файле application.yml, по умолчанию относится ко всем профилям. Если вы хотите разделить свойства, создайте несколько файлов yml, например application-dev.yml и application-test.yml, и укажите профиль явно, как показано ниже (обычно в bootstrap.yml)
spring:
profiles:
active: test
С указанным выше профилем ваше приложение будет видеть свойства только в файлах application.yml и application-test.yml. Свойства в application-dev.yml будут недоступны.
Должно сработать, если оба они находятся в разных профилях и одновременно вы активируете только один.