1. 有些时候需要用到异步处理,camel无需等待to执行完成,我们可以用事件 的方式去处理这种异步问题。
2.看blueprint.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:camel-cxf="http://camel.apache.org/schema/blueprint/cxf"
xmlns:cxfcore="http://cxf.apache.org/blueprint/core"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint/cxf http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
<bean id="orderService" class="com.yyc.OrderService"/>
<camelContext id="myBatisAndCamel" xmlns="http://camel.apache.org/schema/blueprint">
<!-- route that generate new orders and insert them in the database -->
<route id="generateOrder-route">
<from uri="timer:food?period=20s"/>
<transform>
<method ref="orderService" method="generateOrder"/>
</transform>
<convertBodyTo type="java.io.Serializable"/>
<to uri="activemq:queue:dafei" />
</route>
<route>
<from uri="activemq:queue:dafei" />
<log message="++++++++++++++++++++++++"/>
<to uri="mybatis:insertOrder?statementType=InsertList"/>
</route>
</camelContext>
</blueprint>
用camel activitimq去解决异步问题,mq保存对象必须先序列化
<convertBodyTo type="java.io.Serializable"/>才能实现保存