当前位置: 首页 > 知识库问答 >
问题:

带有多个bean配置文件的Spring批处理CommandLineRunner

姜鸿畴
2023-03-14
    null

问题出在我希望启动Spring批处理应用程序时。当阅读这里的说明http://static.springsource.org/spring-batch/reference/html/configurejob.html#runningjobsfromcommandline时,它假设每个作业都有一个Spring配置文件,但我不希望这样做。

如何从命令行运行使用多个bean配置文件的Spring批处理作业?

共有1个答案

单于庆
2023-03-14

您可以始终只导入上下文:

因此在batch/jobs/myjob.xml中:

<import resource="batch/launchContext.xml" />
<import resource="batch/common.xml" />
<import resource="dataSource.xml" />

请参阅Spring文档

<bean id="dataSource" destroy-method="close"
    class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
</bean>

<context:property-placeholder 
   location="classpath:com/foo/jdbc.properties" 
   systemPropertiesMode="2" />  <!-- 2 means override -->

您的jdbc.properties将包含默认值:

jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://production:9002
jdbc.username=sa
jdbc.password=root

但是由于使用了“覆盖”系统属性模式,这些属性可以在运行时指定:

java -Djdbc.url=jdbc:hsqldb:hsql://dev:9002 ...

另请参阅此处

 类似资料:
  • 批处理配置具有spring作业,只有一个步骤 1)读取器-从csv文件读取。处理器对文件应用一些规则。Drools请运行schema-postgresql.sql来设置数据库 WRITER使用SPRING DATA JPA写入DB Writer将此称为PersonDaoImpl:

  • 现在邮件模板对于所有环境都是一样的,所以我没有把它放在一个用特定配置文件标记的配置中。 我尝试通过初始化类来初始化概要文件: 并将其作为上下文参数: 谢谢你的帮助。

  • 我的问题陈述。读取包含1000万数据的csv文件,并将其存储在数据库中。用尽可能少的时间 我使用java的简单多线程执行器实现了它,其逻辑几乎与spring batch的chunk相似。从csv文件中读取预配置数量的数据,然后创建一个线程,并将数据传递给线程,该线程验证数据,然后写入多线程运行的文件。完成所有任务后,我将调用sql loader来加载每个文件。现在我想把这段代码移到spring b

  • 我是Spring批处理的新手,目前正在处理一个新的批处理作业。我的批处理作业: 读取器:读取数据库中的记录(即5家公司的员工) 处理器:处理记录 5个writer:过滤并写入每个文件(即A公司的员工在A路径写入A公司文件,B公司的员工在B路径写入B公司文件),最后一个writer将A公司的所有离职员工写入D公司。 任务:将文件保存到数据库中。 目前,我正在使用CompositeItemWriter

  • 需要读取spring批处理中的文件,对其进行处理并将其作为一个提要保存。一个提要包含50%的信息。当我必须持久化提要的最终结果时,我需要使用公共字段将它们组合起来,并像一个项目一样持久化。请参见下面的示例。 我需要保留的最终信息如下: 请建议我如何在我的Spring批工作中实现这一点。 谢谢

  • 我们正在处理一个Spring批处理项目(Spring Boot1.2.2.Release),要求使用Spring SFTP集成以一定频率轮询从服务器位置读取文件。我们使用java config实现了Spring批处理,并在使用Spring Integration java config的过程中实现了Spring批处理。我找不到描述上述情况的例子。我浏览了各种链接,但看到的主要是XML配置示例。 h