Как получить параметры командной строки в весеннее пакетное задание - PullRequest
2 голосов
/ 02 апреля 2011

Я использую CommandLineJobRunner для выполнения весеннего пакетного задания.Я хочу передать набор параметров, но у меня возникают некоторые проблемы.Это мой шаг:

    <bean id="loadTAReportsJob" class="org.springframework.batch.core.job.SimpleJob">
    <property name="steps">
        <bean id="loadStep" parent="simpleStep">
            <property name="itemReader">
                <bean id="reader" class="com.xyz.reporting.TAReportItemReader">
                    <property name="parm1" value="#{jobParameters['input.file']}" />
                    <property name="parm2" value="#{jobExecutionContext['input.file']}" />
                    <property name="parm3" value="#{stepExecutionContext['input.file']}" />
                </bean>
            </property>
            <property name="itemWriter">
                <bean id="writer" class="com.xyz.reporting.TAReportItemWriter">
                    <property name="reportDomainFacade" ref="reportDomainFacade"/>
                </bean>
            </property>
        </bean>
    </property>
    <property name="jobRepository" ref="jobRepository"/>
</bean>

CommandLineJobRunner сообщает, что:

2407 [P=717580:O=0:CT] INFO support.SimpleJobLauncher  - Job: [SimpleJob: [name=loadTAReportsJob]] launched with the following parameters: [{input.file=somefile.zip}{}{}{}]

Но в моем ReportItemReader все три параметра разрешаются до полного значения:

#{jobParameters['input.file']}
#{jobExecutionContext['input.file']}
#{stepExecutionContext['input.file']}

То есть, похоже, что пакетная пружина не разрешает # {JobXYZ ['имя_парма]].

Нужно ли делать что-то особенное, чтобы заставить пружину разрешить этот синтаксис и выполнить поиск свойства?Нужно ли подключать объект JobParameters или что-то еще, чтобы эта штука работала?

Кстати: я использую Spring Batch 1.1.4 для обеспечения совместимости с Java 1.4.2.

1 Ответ

4 голосов
/ 07 апреля 2011

Возможно, вы захотите сменить свое устройство для чтения предметов с

<bean id="reader" class="com.xyz.reporting.TAReportItemReader"> 

на

<bean id="reader" class="com.xyz.reporting.TAReportItemReader" scope="step">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...