1

如何添加属性:

<property name="myProperty" value="value"/>

到批处理作业定义:

<batch:job id="MyJob">
    <batch:description>description</batch:description>
    <batch:step id="step0">
        <batch:tasklet ref="MyJobCls"/>
        <batch:listeners>
            <batch:listener ref="MyJobkListener"/>
        </batch:listeners>
    </batch:step>
</batch:job>

然后我可以在我的运行时使用这个属性。

4

2 回答 2

2

您可以将属性放在外部文件中,也可以从 xml 将其注入 PropertyPlaceholderConfigurer:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location"><value>my_config.properties</value></property>
  <property name="properties">
   <props>
      <prop key="myProperty">value</prop>
   </props>
  </property>
</bean>

更多细节在这里:在spring config中使用属性

此外,如果您使用 CommandLineJobRunner 运行您的进程,您可以使用 -D 从命令行设置它(如何在 Spring applicationContext.xml 中读取 JVM 参数)a-DmyProperty=value

对于 MyJobCls/MyJobkListener 中的 myProperty 值,您至少可以选择:

annotations如何将属性值注入使用注释配置的 Spring Bean?

或从 xml 配置注入: http ://www.mkyong.com/spring/spring-propertyplaceholderconfigurer-example/

于 2013-04-25T10:03:08.750 回答
0

我有点困惑,你在问什么样的财产。Spring 托管 bean 的字符串或某种类型或引用。

如果你想要一些字符串键值对,那么在 spring-batch-job 参数中定义它。它将可用于所有步骤的整个工作/。

如果您想为引用/类提供一些属性,则将该属性/类作为成员变量添加到您的自定义步骤或自定义作业类中,并使用 setter 和 getter。您也可以对字符串属性执行相同的操作。

于 2014-08-06T13:03:29.273 回答