第57章 Bindy
このコンポーネントの目的は、バインディングマッピングがアノテーションで定義された Java Bean から(または、より正確な非 XML データ)の解析/バインドを許可することです。Bindy を使用すると、などのソースからデータをバインドできます。
- CSV レコード
- fixed-length レコード
- FIX メッセージ、
- またはほとんどすべての非構造化データ
Plain Old Java Object (POJO)へ。Bindy は、java プロパティーのタイプに応じてデータを変換します。POJO は、場合によっては 1 対多の関係とリンクできます。さらに、Date、Double、Float、Integer、Long、BigDecimal などのデータタイプでは、プロパティーのフォーマット時に適用するパターンを指定できます。
BigDecimal 番号では、精度と小数またはグループ化の区切り文字を定義することもできます。
タイプ | フォーマットの種類 | パターンの例 | リンク |
---|---|---|---|
日付 |
|
| https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html |
Decimal* |
|
| 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, …)についてクラスまたはフィールドに必要なアノテーション(ここでは説明)を追加します。
複数のモデル
パッケージ名の代わりにクラス名を使用してバインドを設定するため、同じパッケージに複数のモデルを配置することができます。
57.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
Bindy データ形式は、以下に示す 5 つのオプションをサポートします。
名前 | デフォルト | Java タイプ | 説明 |
---|---|---|---|
type |
| Csv、Fixed、または KeyValue を使用するかどうか。 列挙値:
| |
classType |
| 使用するモデルクラスの名前。 | |
locale |
| 米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | |
unwrapSingleInstance |
| アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。 | |
allowEmptyStream |
| アンマーシャルプロセスで空のストリームを許可するかどうか。true の場合、レコードのないボディが提供されたときに例外は出力されません。 |