第 70 章 bindy
此组件的目标是允许将非结构化数据(或更精确的非 XML 数据)解析/绑定到使用注解定义的绑定映射的 Java Beans。使用 Bindy,您可以绑定来自源的数据,如:
- CSV 记录,
- 固定长度记录,
- FIX 消息,
- 或几乎任何其他非结构化数据
至一个或多个 Plain Old Java 对象(POJO)。bindy 根据 java 属性的类型转换数据。在某些情况下,POJO 可以与一对多的关系相关联。此外,对于如 Date, Double, Float, Integer, Short, Long 和 BigDecimal 等数据类型,您可以提供在属性格式化过程中要应用的模式。
对于 BigDecimal 号,您还可以定义精度和十进制或分组分隔符。
类型 | 格式类型 | 模式示例 | Link |
---|---|---|---|
Date |
|
| https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html |
微小 |
|
| https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/DecimalFormat.html |
其中 Decimal = Double, Integer, Float, Short, Long
支持的格式
第一个发行版本只支持以逗号分隔的值字段和键值对字段(例如:FIX 消息)。
要使用 camel-bindy,您必须首先在软件包中定义模型(如 com.acme.model)和每个模型类(如 Order、Client、Instrument、…)将所需的注解(这里介绍)添加到 Class 或字段中。
多个模型
当您使用类名称而不是软件包名称配置绑定时,您可以将多个模型放在同一个软件包中。
70.1. 选项
Bindy dataformat 支持 5 个选项,如下所列。
Name | 默认值 | Java 类型 | 描述 |
---|---|---|---|
type |
| 是否需要使用 Csv、fixed 或 KeyValue。 Enum 值:
| |
classType |
| 要使用的模型类的名称。 | |
locale |
| 要配置要使用的默认区域设置,如我们用于单元状态。要使用 JVM 平台默认区域设置,请使用名称 default。 | |
unwrapSingleInstance |
| 当 unmarshalling 应该取消嵌套并返回时,而不是嵌套到 java.util.List 中。 | |
allowEmptyStream |
| 是否在 unmarshal 进程中允许空流。如果为 true,当提供没有记录的正文时,不会抛出任何异常。 |