264.15. 使用 JVM 系统属性覆盖属性设置
从 Camel 2.5开始,可以使用 JVM 系统属性在运行时覆盖属性值,而无需重启应用程序来获取更改。这也可以通过从命令行创建与用新值替换的属性相同的 JVM 系统属性来完成。下面是一个示例
PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class); pc.setCache(false); System.setProperty("cool.end", "mock:override"); System.setProperty("cool.result", "override"); context.addRoutes(new RouteBuilder() { @Override public void configure() throws Exception { from("direct:start").to("properties:cool.end"); from("direct:foo").to("properties:mock:{{cool.result}}"); } }); context.start(); getMockEndpoint("mock:override").expectedMessageCount(2); template.sendBody("direct:start", "Hello World"); template.sendBody("direct:foo", "Hello Foo"); System.clearProperty("cool.end"); System.clearProperty("cool.result"); assertMockEndpointsSatisfied();