【问题标题】:Spring Batch disable Spring Boot AutoConfiguration for specific jobsSpring Batch 为特定作业禁用 Spring Boot AutoConfiguration
【发布时间】:2020-09-24 08:46:28
【问题描述】:

我的 Spring Batch 应用程序有多个作业,但只有一个作业使用某些特定的 Spring Boot 自动配置功能:

  • 使用 spring-data-jpa 自动配置的作业,为业务事务配置数据库(不适用于 Spring Batch 管理)
  • 根本不使用数据库的作业

我将这两个工作打包在同一个单元中,因为从业务角度来看这很有意义。两个工作将一起工作,一个工作的输出将成为另一个工作的输入。

是否可以在我运行第二个作业时禁用特定于数据库的自动配置?

【问题讨论】:

  • 我刚刚尝试使用配置文件,但我已禁用特定配置文件的自动配置。我对这个解决方案很满意,但我想知道是否还有其他解决方案?

标签: spring-boot spring-batch


【解决方案1】:

我刚刚尝试使用配置文件,但我已禁用特定配置文件的自动配置。我对这个解决方案很满意,但我想知道是否还有其他解决方案?

这类似于尝试延迟加载特定于给定作业的 bean:How to apply something like @Lazy to Spring Batch?。虽然 Spring 配置文件功能可能会解决您的问题,但我相信它正在解决以单一方式打包所有作业的根本问题。

我会单独打包每项工作,这个问题(以及许多其他问题)在设计上消失了。这种方法有几个优点:

  • 独立的生命周期管理(错误、功能等)
  • 灵活部署
  • 单独的日志
  • 单独的配置(与当前问题一样)
  • 更容易/更好的可扩展性

以及让一件事做好一件事并做好的所有充分理由。

【讨论】:

    猜你喜欢
    • 2014-12-24
    • 2014-03-09
    • 2020-09-24
    • 2016-11-23
    • 1970-01-01
    • 2019-06-09
    • 2017-04-20
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多