380.4. 在 Spring DSL 中使用 YAML
在 Spring DSL 中使用数据格式时,您需要首先声明数据格式。这是在 DataFormats XML 标签中进行的。
<dataFormats> <!-- here we define a YAML data format with the id snake and that it should use the TestPojo as the class type when doing unmarshal. The unmarshalTypeName is optional --> <yaml id="snake" library="SnakeYAML" unmarshalTypeName="org.apache.camel.component.yaml.model.TestPojo"/> <!-- here we define a YAML data format with the id snake-safe which restricts the classes to be loaded from YAML to TestPojo and those belonging to package com.mycompany --> <yaml id="snake-safe"> <typeFilter value="org.apache.camel.component.yaml.model.TestPojo"/> <typeFilter value="com.mycompany\..*" type="regexp"/> </yaml> </dataFormats>
然后您可以引用路由中的 id:
<route> <from uri="direct:unmarshal"/> <unmarshal> <custom ref="snake"/> </unmarshal> <to uri="mock:unmarshal"/> </route> <route> <from uri="direct:unmarshal-safe"/> <unmarshal> <custom ref="snake-safe"/> </unmarshal> <to uri="mock:unmarshal-safe"/> </route>