【问题标题】:Additional properties files for spring-batch-adminspring-batch-admin 的附加属性文件
【发布时间】:2015-04-04 13:57:08
【问题描述】:

我有一个使用 spring-batch 的 Web 应用程序,我现在正在集成 spring-batch-admin 以进行基本管理。

问题是作业配置文件(与现有应用程序的配置共享)使用我应用程序类路径中文件的属性,但 spring-batch-admin 的上下文无法加载它们。

快速的解决方案是覆盖 spring-batch-admin 中的 placeholderProperties bean 只是为了添加我的属性文件:

<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:/org/springframework/batch/admin/bootstrap/batch.properties</value>
            <value>classpath:batch-default.properties</value>
            <value>classpath:batch-${ENVIRONMENT:hsql}.properties</value>
            <value>classpath:/path/to/jobs-config.properties</value> <!-- adding my properties here -->
        </list>
    </property>
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="ignoreResourceNotFound" value="true" />
    <property name="ignoreUnresolvablePlaceholders" value="false" />
    <property name="order" value="1" />
</bean>

我不想将我的属性移动到 spring-batch-admin 的默认文件之一。有没有更简单的方法来做到这一点?

【问题讨论】:

    标签: spring-batch spring-batch-admin


    【解决方案1】:

    在这里回答我自己的问题...

    documentation 中所述,放置在META-INF/spring/batch/jobs/*.xml 下的每个作业配置文件都由spring-batch-admin 作为子上下文加载,并且继承父级的属性占位符(即this 默认bean),但是子上下文始终可以创建自己的占位符 bean。

    鉴于在我的情况下,作业配置文件与现有应用程序共享并使用应用程序类路径中的属性,解决方案是在 META-INF/spring/batch/jobs/*.xml 中创建一个新的作业文件,特定于 spring-batch-admin:

    <!-- placeholder bean with additional properties for the child context -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:/path/to/job-config.properties</value>
            </list>
        </property>
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
        <property name="ignoreResourceNotFound" value="true" />
        <property name="ignoreUnresolvablePlaceholders" value="false" />
        <property name="order" value="1" />
    </bean>
    
    <!-- external job configuration file is imported -->
    <import resource="classpath*:/path/to/job.xml" />
    

    【讨论】:

    • 文档链接已失效
    猜你喜欢
    • 2016-11-16
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多