У меня есть автономное приложение Camel Spring:
public static void main(final String[] args) throws Exception{
Main main = new Main();
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("camel-context.xml");
main.setApplicationContext(context);
main.run();
}
У меня есть некоторые свойства, которые необходимо использовать при настройке маршрутов. Эти свойства будут получены из аргументов командной строки при запуске приложения. Маршрут определен:
public class MyRouteBuilder extends SpringRouteBuilder {
@Autowired
private Environment environment;
@Override
public void configure() {
Map<String, String> loadedValues = getValuesFromProperties( envrionment );
// route definition
}
}
Как получить эти свойства для использования в методе настройки? Я не знаю, какие имена свойств или значения перед запуском приложения. У меня будет тысячи возможных свойств.
Я пытался получить их с помощью CommandLinePropertySource, но значения устанавливаются после вызова метода config ():
CommandLinePropertySource clps = new SimpleCommandLinePropertySource(args);
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("camel-context.xml");
context.getEnvironment().getPropertySources().addFirst(clps);
main.setApplicationContext(context);
Я также попытался создать контекст, добавить свойства и затем создать контекст с моим файлом camel-context. xml, но это тоже не сработало.
Какие есть варианты загрузки свойств из аргументов командной строки в мое приложение?