Может ли кто-нибудь объяснить мне различия между двумя свойствами?Разница верблюдов между свойствами маршрута и свойствами обмена
@Override
public void setUp() throws Exception {
context = new DefaultCamelContext(new SimpleRegistry());
template = context.createProducerTemplate();
context.addRoutes(new RouteBuilder() {
public void configure() throws Exception {
PropertiesComponent prop = context.getComponent(
"properties", PropertiesComponent.class);
prop.setLocation("classpath:test.properties");
from("direct:start")
.log("Property: ${properties:a}")
.process(new Processor() {
@Override
public void process(Exchange ex) throws Exception {
String a = ex.getProperty("a", String.class);
LOG.info("Property: " + a);
}
})
;
}
});
context.getShutdownStrategy().setTimeout(1);
context.start();
}
@Test
public void testRoute() throws Exception {
template.sendBody("direct:start", null);
}
окно свойств-файл (test.properties
):
a = a
Выход:
2015-09-03 14:38:01,740 | INFO | route1 | Property: a
2015-09-03 14:38:01,743 | INFO | CamelTest2 | Property: null
Первая линия от .log("${properties:a}")
, поэтому он может быть найден. Однако String a = ex.getProperty("a", String.class);
не может. Оба являются свойствами и указывают на одно и то же свойство, не так ли?
В чем разница, и как я могу найти свойство в процессоре?
И дополнительные - Свойства.a относится к свойству в файле свойств. Хотя exchangeProperty (частное имущество, которое устарело), ссылается на свойство биржи. http://camel.apache.org/simple.html – J2B
А, я вижу. Благодаря! Но есть ли возможность добавить весь файл свойств на биржу? – SLG
Не совсем уверен. Но если вы используете Java DSL, у вас есть максимальная гибкость, не так ли? напишите метод, который может загрузить файл свойств с помощью простого свойства java: Свойства свойства = ..... и добавьте это свойство в обмен. Это должно быть просто :) –