【问题标题】:Configuring a spring-batch without using any XML在不使用任何 XML 的情况下配置 spring-batch
【发布时间】:2014-12-15 13:39:25
【问题描述】:

免责声明:我是春天的菜鸟。我的问题可能很“奇怪”,因为我什至不知道我不知道什么

我正在尝试使用 Java 创建一个批处理数据移动/操作工具(我可以说是 ETL 工具)。有人建议我查看spring-batch,我非常喜欢它,因为它有许多用于数据读取/写入和处理的库。

但我的问题是 - 我的数据源(平面文件或表格)不固定。有一个前端,用户将选择他们想要加载的平面文件或数据库表,程序将自动加载它。这意味着,通常的事情是:

  • 源/目标实体结构
  • 源或目标数据库 URL/DSN
  • 作业参数等

在我的情况下不是预先确定的。它们是在运行时确定的。但是,到目前为止,无论我看到什么spring-batch 示例——他们都在 XML 中配置了这些信息。我不能这样做,因为这会使这些信息变成静态的。

我的问题是 - 如果我不想使用 Spring Container(及其所有基于 XML 的 bean 配置)但仍想使用 spring-batch 来利用它的批处理库,那可能/可行吗?

【问题讨论】:

    标签: java spring-batch etl


    【解决方案1】:

    不,您需要使用 Spring Container 来使用 Spring Batch 及其所有基于 XML 或注解的 bean 配置。但是,您正在尝试的是可以实现的,您只需要找到通过使用 Spring 批处理中的参数来使其可配置的方法。您可以从互联网上获取任何示例并开始对其进行处理以使其可配置。

    1. 就像您可以通过简单地编写自定义映射器来使用 Spring 的文件阅读器一样。您可以节省创建和维护文件读取逻辑的工作量。
    2. 您可以让编写器在运行时根据您的表和文件动态查询您创建的内容。

    示例显示了 xml 中的所有内容,以便于理解,但是如果您稍微探索一下,几乎所有内容都可以在运行时完成。

    【讨论】:

    • 我已经做了一段时间的 xml 配置,我的表和文件列是在运行时决定的。你从这个想法开始工作,然后如果你遇到困难,我们会在这里帮助你。
    • 这正是我的情况——我的表和文件列是动态的。您是否建议这些动态案例都可以使用 Spring Batch XML 中的参数进行配置?
    • 是的,参数,然后是自定义映射器等。您需要逐案处理并找到解决方案。 Spring Batch 对于 Java 中的这种工作来说是非常灵活和好的工具。使事情可配置可能看起来有点复杂,但后来它节省了大量的时间和精力。
    猜你喜欢
    • 2019-10-22
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多