2012-03-15 11 views
0

私はBean to BeanマッピングJavaフレームワークを探していますが、そのマッピング・ルールはJavaコードの外で定義できます。ソースBeanとターゲットBeanにはn個のサブビーンがあり、マッピングルールは少し複雑になる可能性があります(単純な1対1マッピングではありません)。設定可能な(XMLなどの)Java Beanマッピング・フレームワーク

プロセスの概要: シンプルなETLプロセスですが、設定可能なマッピングロジックがあります。 私はSpring Batchを使用して、複数行レコード(固定長ファイル)をBeanにロードします。定義されたマッピングルールのベースとして使用するためのjavabeanとしてのレコードの単なる表現です。このマッピングの結果は、ソースと完全に異なるビルドである別のjavabeanです。ここでは、これとJava Beanとの間の汎用マッピングフレームワークを使用したいと思います。

スプリングバッチ部分は完全にクリアで実装されています。

もちろん、私はそれをJavaでハードコードすることができますが、透明性の理由から、このマッピングロジックをJavaコードの外にエクスポートする必要があります。

誰もこのようなフレームワークを知っていますか?誰か存在しますか?私はDozerを見つけましたが、XMLで複雑なマッピングルールを定義することはできません。

答えて

1

多分。私はこれにJava Scripting APIを使用します。スクリプト(JavaScript、Beanshell、Groovyなど)を読み込んで実行することができます。変数に入力行(またはモデル全体)を置くことができ、スクリプトは新しいオブジェクト構造を作成することができます。

0

JMapper Frameworkを試してみてください。

<conversion name="fromMapToAll" from="map" type="DYNAMIC"> 
     return (${destination.type}) ${source}.get("${destination.name}"); 
</conversion> 
<conversion name="fromAllToMap" to="map" type="DYNAMIC"> 
     ${destination}.put("${source.name}",${source}); 
     return ${destination}; 
</conversion> 

wikiを参照してください。あなたが取得し、マップから値を設定する必要がある場合 はXMLでは、次のコードは、たとえば、フィールドの値と名前を使用するプレースホルダを使用して静的および動的変換を書くことができます詳細はページをご覧ください。

関連する問題