【发布时间】:2019-05-26 16:16:37
【问题描述】:
我有一个 EAR 文件,其中包含我们的主应用程序(普通 UI 和 JEE 持久性)和 Spring Batch Admin 1.3.0 的 1 个 URL。我们正在将技术更新为 Spring Boot、Spring 5、Spring Data/JPA、Spring Batch 4 和一个 war 文件部署。到目前为止一切顺利,现在我们正处于集成 Spring Batch Admin 的阶段,我对最佳方法有点困惑。有很多问题和方法,我试图在两者之间做出选择。
就 Spring Batch Admin 而言,我们已经为我们的业务领域进行了一些定制,因此更愿意继续使用 freemarker 方法而不是切换到 Angular。所以我从代码here 开始。第一步是更新 Spring 5/Batch 4 的代码,然后重新添加我们的自定义,
最后,我正要尝试将 Spring Batch Admin UI 添加到 war 文件中。我将修改后的 Spring Batch Admin jar 文件添加到 pom.xml 中以获取 war 文件。大部分 spring 配置已迁移到 java config。但是,所有作业仍然在 XML 文件中。我将 data-source-context.xml(从 JNDI 加载)放在 META-INF 覆盖目录中(正如 Spring Batch Admin 所期望的那样。我看到 SBA 和 dataSource 加载的“dataSource”和“transactionManager”冲突和我在我的应用程序中定义的事务管理器(用于 Spring Data / JPA)。
处理这种情况的最佳方法是什么?理想情况下,SBA 管理员将只使用已经定义的 spring 组件。删除 @EnableBatchAdmin 并在我的配置类中处理 SBA 资源导入?
更新: 我遵循讨论的here 的方法,我看到系统启动和 UI 显示。现在我正在尝试加载作业 xml 文件。我已经为生成 spring 批处理管理实体生成了一个 java 配置。
现在,当我加载作业 xml 文件时,我看到错误,它无法找到 java 配置中定义的 bean。我认为 java 和 xml 配置可以共同存在于同一个项目中并相互引用 spring bean。
想法?
【问题讨论】:
标签: spring-boot spring-batch spring-batch-admin