[英]How do i set properties from command line args in Camel Spring standalone app
我有一个 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 文件创建上下文,但这也不起作用。
将命令行参数中的属性加载到我的应用程序中的选项有哪些?
添加属性源后,您是否尝试过刷新?
context.getEnvironment().getPropertySources().addFirst(clps);
context.refresh();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.