Я развертываю приложение Spring Boot как WAR-файл в Tomcat. Я ожидал, что мои application-local.properties переопределяют значения, которые также существуют в моем файле application.properties. Но кажется, что значения из application-local.properties считываются только в том случае, если эти ключи не существуют в application.properties. Мой application.properties файл находится в SRC/основные/ресурсы/моего проекта и application-local.properties находится в $ {catalina.home}/property_files/ком/демо/конфигурации папкиSpring @PropertySources значение не переопределяет
context.xml
<Parameter name="spring.profiles.active" value="local" override="false"/>
catalina.properties
shared.loader=${catalina.home}/property_files
AppConfig.java
@Configuration
@PropertySources({
@PropertySource("classpath:application.properties"),
@PropertySource("classpath:com/demo/config/application-${spring.profiles.active}.properties")
})
public class AppConfig extends WebMvcConfigurerAdapter {
}
EDIT 1: На самом деле загружается файл свойств, зависящий от среды. Но он не отменяет никаких значений из внутреннего файла свойств.
EDIT 2: Спасибо за все ваши предложения. Но я обнаружил, что моя проблема была вызвана приоритетом каталога. Оказывается, что файлы свойств в корневом пути к классам имеют более высокий приоритет, чем любые файлы свойств независимо от того, в каком порядке они объявлены.
В принципе, я просто хочу, чтобы использовать SRC/основные/ресурсы/application.properties для местного где значения могут быть переопределены другим файлом свойств в другой среде (интеграция dev, QA, uat, production). –