指代處理器使用進程標記或使用到標記有什麼區別?使用<process ref =「bean id」>標記或使用<to uri =「bean:id」>引用處理器有什麼區別?
<route id="sample"><from uri="" /><to uri="bean:mqResponseProcessor" /></route>
<route id="sample"><from uri="" /><process ref="mqResponseProcessor"/></route>
指代處理器使用進程標記或使用到標記有什麼區別?使用<process ref =「bean id」>標記或使用<to uri =「bean:id」>引用處理器有什麼區別?
<route id="sample"><from uri="" /><to uri="bean:mqResponseProcessor" /></route>
<route id="sample"><from uri="" /><process ref="mqResponseProcessor"/></route>
沒有區別,都做同樣的工作。
使用java DSL,您可以將匿名內部類與進程語法放在一起。
from("direct:demo").process(new Processor() {
public void process(Exchange exchange) throws Exception {
// some stuff
}
}).to("mock:demoEnd");
過程語法還可以提高代碼的可讀性:
<route id="sample">
<from uri="direct:demo"/>
<process ref="firstProcessor"/>
<to uri="mock:otherRoute"/>
<process ref="secondProcessor"/>
<to uri="mock:endTest"/>
</route>
Vs的
<route id="sample">
<from uri="direct:demo"/>
<to uri="bean:firstProcessor"/>
<to uri="mock:otherRoute"/>
<to uri="bean:secondProcessor"/>
<to uri="mock:endTest"/>
</route>
如果你的bean是org.apache.camel.Processor
的實現則沒有實際的區別。但是,使用bean binding可以提供更大的靈活性。除其他bean的
org.apache.camel.Processor
使用bean和bean綁定有點像類固醇上的處理器。