2012-03-15 62 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页面了解更多信息。