第 49 章 Bindy DataFormat
从 Camel 版本 2.0 开始提供
此组件的目标是允许解析/绑定非结构化数据(或者更精确的非 XML 数据)
到使用注解定义的绑定映射的 Java Beans。使用 Bindy,您可以从源(如 )绑定数据:
- CSV 记录,
- 固定记录,
- FIX 消息,
- 或者几乎任何其他非结构化数据
到一个或多个 Plain Old Java 对象(POJO)。bindy 根据 java 属性的类型转换数据。在某些情况下,POJO 可以与一对多关系连接在一起。此外,对于 Date, Double, Float, Integer, Short, Long 和 BigDecimal 等数据类型,您可以在属性格式化期间提供要应用的模式。
对于 BigDecimal 号,您还可以定义精度,以及十进制或分组分隔符。
类型 | 格式类型 | 特征示例 | Link |
---|---|---|---|
Date | DateFormat |
| http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html |
十进制* | Decimalformat |
| http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html |
decimal* = Double, Integer, Float, Short, Long
*Format supported*
第一个版本只支持逗号分隔的值字段和键值对字段(例如:FIX 消息)。
要使用 camel-bindy,您必须首先在软件包(如 com.acme.model)和每个模型类(如 Order, Client, Instrument, …)中定义您的模型,将所需的注解(这里介绍)添加到 Class 或 字段。
*Multiple models*
如果您使用多个模型,则必须将每个模型放在它自己的软件包中,以防止无法预计的结果。
现在,从 Camel 2.16 开始,这已不再是这种情况,因为您可以在同一个软件包中安全地有多个模型,因为您使用类名称而不是软件包名称配置绑定。
49.1. 选项
Bindy dataformat 支持 5 个选项,如下所列。
Name | 默认值 | Java 类型 | 描述 |
---|---|---|---|
type |
| 是否使用 csv、fixd 或 key value 对模式。根据所选的 dataformat,默认值为 Csv 或 KeyValue。 | |
classType |
| 要使用的模型类名称。 | |
locale |
| 要配置要使用的默认区域设置,如 us 用于单元状态。使用 JVM 平台默认区域设置,然后使用名称 default | |
unwrapSingleInstance |
|
| 当 unmarshalling 应该解封并返回时,而不是嵌套在 java.util.List 中。 |
contentTypeHeader |
|
| 如果数据格式可以这样做,则数据格式是否应使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式的 application/xml 放入 XML 或用于数据格式的 application/json,如 JSon 等。 |