2012-03-15 84 views
0

我正在尋找一個Bean來豆映射Java框架,他們的映射規則可以被定義外/不是在Java代碼中。源bean和目標bean有n個子bean,所以映射規則可能有點複雜(不是簡單的一對一映射)。配置(例如XML)Java Bean來Bean的映射框架

有關進程的一個小概述: 這是簡單的ETL過程,但有可配置的映射邏輯。 我使用Spring Batch將多行記錄(固定長度文件)加載到bean中。它只是將記錄表示爲javabean,將其用作定義的映射規則的基礎。這個映射的結果是另一個完全不同的源代碼構建的javabean。在這裏我想使用這個到Java bean之間的通用映射框架。

的Spring Batch的部分是完全地明確和落實。

當然,我可以定義它硬編碼在Java但透明的原因,我有這個映射邏輯導出的Java代碼之外。

有誰知道這樣一個框架?有人存在嗎?我找到了Dozer,但我想我無法在其XML中定義一些複雜的映射規則。

回答

1

也許吧。我會用這個Java Scripting API。它允許你加載腳本(JavaScript,Beanshell,Groovy等等)並運行它們。您可以將一行輸入(或整個模型)放入一個變量中,然後腳本可以創建新的對象結構。

0

嘗試使用JMapper框架。 在XML中,你可以使用佔位符使用的字段的值和名稱,例如寫靜態和動態的轉換,如果你需要獲得並從地圖中設置的值的代碼是如下:

<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頁面瞭解更多信息。