Конфигурация, определенная в Application.properties не переопределена переменной среды .
Я сталкиваюсь с странной проблемой с конфигурацией пружины как конфигурация, определенная в приложении. Как упомянуто в внешней конфигурационной ОС, переменные среды, имеют приоритет над применением. Пропертизы Но это не происходит, когда конфигурация определяется как myexternal_url , но она работает, когда конфигурация определяется как my_external_url (в примере ниже, мы должны изменить конфигурацию на my_external_url in applicationprperties. Application.properties )
Пример кода -
Код: Выделить всё
@SpringBootApplication
public class ConfigApplication implements ApplicationRunner {
@Autowired private ApplicationProperties applicationProperties;
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
@Override
public void run(ApplicationArguments arg0) {
System.out.println("External URL = " + applicationProperties.getMyExternalUrl());
}
}
< /code>
Конфигурация бобов приложения -< /p>
@Configuration
public class AppConfig {
@Bean
@ConfigurationProperties(prefix = "")
public ApplicationProperties applicationProperties() {
return new ApplicationProperties();
}
}
< /code>
ApplicationPropertiesКод: Выделить всё
public class ApplicationProperties {
@Value("${myExternal_url}")
private String myExternalUrl;
public String getMyExternalUrl() {
return this.myExternalUrl;
}
public void setMyExternalUrl(String myExternalUrl) {
this.myExternalUrl = myExternalUrl;
}
}
< /code>
application.propertiesКод: Выделить всё
myExternal_url=external_url_env_application_properties
< /code>
What could be reason for this ?
EDIT - adding gradle
Gradle configuration
plugins {
id 'org.springframework.boot' version '2.4.0-M1'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
compileOnly 'org.projectlombok:lombok:1.18.6'
annotationProcessor 'org.projectlombok:lombok:1.18.6'
}
test {
useJUnitPlatform()
}
< /code>
EDIT 2
Trace log shows that myExternal_url is resolved correctly from Environment variable. Then Spring tries to resolve autowired dependencies 'applicationPropertieso.s.c.e.PropertySourcesPropertyResolver : Found key 'myExternal_url' in PropertySource 'systemEnvironment' with value of type String
o.s.c.e.PropertySourcesPropertyResolver : Found key 'myExternal_url' in PropertySource 'environmentProperties' with value of type String
< /code>

Подробнее здесь: https://stackoverflow.com/questions/629 ... figuration
Мобильная версия