10.6. トランスフォーマー
トランスフォーマーは、ルート定義で宣言された Input Type
や Output Type
に従って、メッセージの宣言的な変換を実行します。デフォルトの Camel メッセージは DataTypeAware
を実装します。これは DataType
で表されるメッセージタイプを保持します。
10.6.1. トランスフォーマーの仕組み リンクのコピーリンクがクリップボードにコピーされました!
ルート定義は Input Type
や Output Type
を宣言します。Input Type
や Output Type
がランタイムのメッセージタイプと異なる場合、Camel 内部プロセッサーはトランスフォーマーを検索します。トランスフォーマーは現在のメッセージタイプを予想されるメッセージタイプに変換します。メッセージが正常に変換されたり、メッセージが想定されるタイプである場合は、メッセージデータタイプが更新されます。
10.6.1.1. データタイプフォーマット リンクのコピーリンクがクリップボードにコピーされました!
データタイプのフォーマットは scheme:name
です。scheme は、java
、xml
または json
といったデータモデルのタイプで、name はデータタイプ名です。
scheme のみを指定すると、そのスキームですべてのデータタイプと一致します。
10.6.1.2. サポート対象のトランスフォーマー リンクのコピーリンクがクリップボードにコピーされました!
トランスフォーマー | 説明 |
---|---|
データフォーマットトランスフォーマー | データフォーマットを使用した変換 |
エンドポイントトランスフォーマー | エンドポイントを使用した変換 |
カスタムトランスフォーマー | カスタムトランスフォーマークラスを使用した変換。 |
10.6.1.3. 共通オプション リンクのコピーリンクがクリップボードにコピーされました!
すべてのトランスフォーマーには、トランスフォーマーでサポートされるデータタイプを指定するための以下の共通のオプションがあります。
scheme
または fromType
および toType
の両方を指定する必要があります。
10.6.1.4. DataFormat トランスフォーマーオプション リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
type | データフォーマットの種類 |
ref | データフォーマット ID への参照 |
bindy
DataFormat タイプを指定する例は次のとおりです。
Java DSL の場合
XML DSL の場合
<dataFormatTransformer fromType="java:com.example.Order" toType="csv:CSVOrder"> <bindy id="csvdf" type="Csv" classType="com.example.Order"/> </dataFormatTransformer>
<dataFormatTransformer fromType="java:com.example.Order" toType="csv:CSVOrder">
<bindy id="csvdf" type="Csv" classType="com.example.Order"/>
</dataFormatTransformer>