У меня есть приложение Maven / SpringBootApplication, которое берет свои свойства с сервера конфигурации Spring.Мне нужно переопределить значения этих свойств с помощью аргументов командной строки.к сожалению, свойства сохраняют значения, предоставленные сервером конфигурации, и не переопределяются аргументами командной строки.
- Я подтвердил, что параметры должным образом передаются в приложение, как я вижу, передаются вSpringApplication.run.
- Я могу видеть в функции ConfigurableApplicationContext Spring Framework среду, содержащую аргументы в environment.propertysources.propertySourceList.SimpleCommandLinePropertySource.source.optionArgs
- Если я пытаюсь установить значение, определенное Spring (например --logging.level.org.springframework.web = TRACE) это работает, то есть следы журналов Spring
Я прочитал все возможные темы на эту тему, но, похоже, ни одна из них не относится к моей проблеме.
Это мое загрузочное приложение Spring (аргументы передаются SpringApplication)
@SpringBootApplication
@ComponentScan("com.mycompany")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Здесь находится компонент и свойство
@Component
public class TaskProcessor implements com.mycompnay.fwk.task.engine.TaskProcessor {
private RestTemplate restTemplate = new RestTemplate();
@Value("${mycompany.converter.converter-uri.office}")
private String converterUriOffice;
}
Переданный параметр полученприложением (извлечено из отладчика):
0:"--debug=true"
1:"--logging.level.org.springframework.web=TRACE"
2:"--mycompany.converter.converter-uri.office=foo"
hash:0
value:char[44]@25
Я ожидаю, что свойство converterUriOffice будет иметь значение foo Вместо этого оно получает свое значение от сервера конфигурации (http://localhost:3000/convert/office)