当前位置:Java -> 在Java中实现低代码数据映射
数据映射 是集成、插件和连接器开发项目的一个重要部分。开发人员花费数天进行数据/字段映射研究,然后将这些映射转换为技术要求,并为其编写代码。
很多时候,代码是重复的和类同的。优化的一个方法是创建一个可在整个实施过程中重用的实用程序和库。但挑战在于每个数据源都有自己的模式,这使得这些实用程序高度可配置,因此难以维护。
为了解决这个问题,有一个非常低代码和直观的解决方案。可以使用交互式基于网络的用户界面将他们的映射分析/研究简单地转换到这个工具中,并创建一个运行时引擎将消耗和产生目标输出的映射配置。
一个可用的开源解决方案是 AtlasMap 。你可以在 GitHub 上访问并扩展代码 。
它提供了一个基于网络的用户界面和运行时引擎作为基本工具。除了运行时引擎提供的纯 Java API 之外,它还支持通过camel-atlasmap组件支持 Apache Camel ,并通过Quarkus扩展支持 Quarkus 。使用它的最简单方法是使用独立模式,也可以通过 VS Code 插件访问。
你可以下载预构建的二进制文件或者检出代码并在本地自定义/构建。你可以从Maven仓库获取独立的AtlasMap二进制文件。
你也可以通过命令行运行下面的命令来下载它(用最新版本替换{VERSION}
)。
wget https://repo1.maven.org/maven2/io/atlasmap/atlasmap-standalone/$ {VERSION}/atlasmap-standalone-${VERSION}.jar
你需要Java运行时来运行这个工具。运行以下命令启动用户界面。
java -jar atlasmap-standalone-${VERSION}.jar
现在你可以通过http://127.0.0.1:8585 URL在本地浏览器中浏览用户界面了。
1. 加载映射文件:
URL mappingUrl = Thread.currentThread().getContextClassLoader().getResource("atlasmap-mapping.adm");
2. 准备Atlas映射上下文:
AtlasContextFactory factory = DefaultAtlasContextFactory.getInstance(); AtlasContext context = factory.createContext(mappingUrl.toURI());
3. 加载源文件:
URL sourceUrl = Thread.currentThread().getContextClassLoader().getResource("source.json");
String source = new String(Files.readAllBytes(Paths.get(url.toURI())));
4. 创建会话并处理源文档:
AtlasSession session = context.createSession();
session.setSourceDocument("JSONSchemaSource", source);
context.process(session);
5. 最后从会话中检索目标文档:
String target = (String) session.getTargetDocument("target");
使用Apache Camel,您无需编写自定义代码来读取/写入文件或调用转换。只需进行简单的配置,就可以使用camel
组件立即完成这些操作。
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route> <from uri="direct:start" />
<to uri="atlas:atlasmapping.adm" />
<to uri="mock:result" />
</route>
</camelContext>
通过这种方式,您可以设计映射并仅通过配置和极低的运行时代码将任何Java / JSON / XML对象转换为任何目标对象。
AtlasMap提供各种转换函数,如字符串操作,日期格式化,算术运算等,您可以在映射过程中使用它们来转换数据。它还支持涉及数组,列表和嵌套对象的复杂映射。
它还提供了全面的官方网站上的文档和教程。您可以参考这些内容获取详细信息和示例。您还可以找到社区支持和论坛,在那里您可以提出问题并获得有关使用AtlasMap的帮助。
AtlasMap提供了一个用户友好的图形界面,用于在不同数据格式之间创建,管理和实现数据映射。通过定义源和目标数据结构,应用转换并测试映射,您可以有效地将数据从一种格式转换为另一种格式。该工具支持各种转换函数,并提供选项以生成代码,以便无缝集成到您的应用程序中。
推荐阅读: 24. 面向对象三大特性(封装、继承、多态)
本文链接: 在Java中实现低代码数据映射