#spring-batch
#пакет spring-batch
Вопрос:
Мне нужно проверить параметры для моего запроса внутри reader, я отправляю параметры внутри RunConfiguration, я даю вам свою работу с кодом, спасибо за вашу помощь (я порицал часть кода с помощью «*» для защиты данных)
<bean class="**.*****.absis.batch.arch.internal.reader.***ItemReader" id="readerBBDD_Step1">
<property name="dataSource" ref="appDataSource"></property>
<property name="sql" value="select conf.repte, imp.IMPREPTE1 , imp.IMPREPTE2, imp.IMPREPTE3,imp.IMPREPTE4,imp.IMPREPTE5,imp.IMPREPTE6, subrepte, negocio, asignacion, tipus, origen from **************BATCH0003 conf inner join
TDE_IMPORTREPTES_BATCH0003 imp on CONF.REPTE = imp.repte
where conf.anyo = imp.anyo and conf.repte = '****' and esquema = '*****' and tipus='${param1}'" ></property>
<property name="rowMapper">
<bean class="****.****.absis.batch.arch.internal.reader.****sBaseRowMapper">
<property name="rowMapper">
<bean class="***.***.absis.batch.app.****.util.MapperStep1"></bean>
</property>
</bean>
</property>
</bean>
Моя цель — контролировать параметр1
Ответ №1:
я отправляю параметры внутри RunConfiguration
Вы можете передать param1
в качестве параметра своему заданию и проверить его с помощью JobParametersValidator
.
Затем, как только он будет проверен, он может быть передан вашему Reader с:
tipus='#{jobParameters[param1]}'
Надеюсь, это поможет.
Комментарии:
1. Привет, спасибо за вашу помощь. Вы можете объяснить мне, как я могу использовать JobParametersValidator? и это: tipus=’#{jobParameters[param1]}’ Правильно ли я помещаю это в свой класс reader?
2.
JobParametersValidator
это интерфейс. Вы реализуете этот интерфейс с помощью своей логики проверки, затем добавляете свою реализацию в задание, как показано по ссылке, которую я дал (вверху страницы есть переключатель для выбора между конфигурацией Java / XML). Затем заменитеtipus='${param1}'
в вашем XML наtipus='#{jobParameters[param1]}'
.3. Последний вопрос, я создаю новый независимый класс в своем пакете с этим импортом, например:ValidatorParameters.java ? или я делаю импорт в конфигурации класса или что-то в этом роде