camel自定义组件需要有以下三要素:
xxxComponent extends DefaultComponent
xxxConfiguration
xxxEndpoint extends ProcessorEndpoint或者xxxEndpoint extends DefaultEndpoint
xxxComponent.createEndpoint 创建一个endpoint
camel的神奇之处在于一个route节点只要配置成类似下面的这种格式就可以
<bean id="xxxBeanId" class="packageName.xxxComponent">
<to uri="xxxBeanId:action?paramName=paramValue" />
实际处理任务的并不是component而是component创建的endpoint,component创建endpoint时会传入xxxConfiguration,这样endpoint可以根据configuration的action和param来执行具体的任务
EndPoint的onExchange()方法会调用processor处理