스프링 부트를 사용하여 스프링 배치에서 작업 매개 변수를 설정하는 방법
http://spring.io/guides/gs/batch-processing/에 있는 가이드에서 확인했는데 설정 가능한 파라미터가 없는 작업이 설명되어 있습니다.난 메이븐을 이용해서 내 프로젝트를 만들고 있어.
XML에서 정의한 기존 작업을 포팅하고 있으며 명령을 통해 jobParameters를 전달하려고 합니다.
다음을 시도했습니다.
@Configuration
@EnableBatchProcessing
public class MyBatchConfiguration {
// other beans ommited
@Bean
public Resource destFile(@Value("#{jobParameters[dest]}") String dest) {
return new FileSystemResource(dest);
}
}
그런 다음 다음을 사용하여 프로젝트를 컴파일합니다.
mvn clean package
그런 다음 다음과 같이 프로그램을 실행하려고 합니다.
java my-jarfile.jar dest=/tmp/foo
그리고 예외는 다음과 같습니다.
[...]
Caused by: org.springframework.expression.spel.SpelEvaluationException:
EL1008E:(pos 0): Field or property 'jobParameters' cannot be found on object of
type 'org.springframework.beans.factory.config.BeanExpressionContext'
감사합니다!
명령줄에서 작업 매개 변수를 구문 분석한 다음 작업 매개 변수를 생성하고 채웁니다.
public JobParameters getJobParameters() {
JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
jobParametersBuilder.addString("dest", <dest_from_cmd_line);
jobParametersBuilder.addDate("date", <date_from_cmd_line>);
return jobParametersBuilder.toJobParameters();
}
Job Launcher를 통해 업무에 전달 -
JobLauncher jobLauncher = context.getBean(JobLauncher.class);
JobExecution jobExecution = jobLauncher.run(job, jobParameters);
이제 다음과 같은 코드를 사용하여 액세스할 수 있습니다.
@Bean
@StepScope
public Resource destFile(@Value("#{jobParameters[dest]}") String dest) {
return new FileSystemResource(dest);
}
또는 ItemReader, ItemWriter 등의 Spring Batch Job 아티팩트를 설정하는 @Configuration 클래스에서 사용할 수도 있습니다.
@Bean
@StepScope
public JdbcCursorItemReader<MyPojo> reader(@Value("#{jobParameters}") Map jobParameters) {
return new MyReaderHelper.getReader(jobParameters);
}
저는 제 콩에 주석을 다는 것만으로 이 작업을 할 수 있었습니다.
@Bean
@StepScope
public Resource destFile(@Value("#{jobParameters[dest]}") String dest) {
return new FileSystemResource(dest);
}
언급URL : https://stackoverflow.com/questions/21557623/how-do-i-set-jobparameters-in-spring-batch-with-spring-boot
'programing' 카테고리의 다른 글
컨테이너 내에서 Wordpress를 업데이트하는 중입니다.FTP 액세스 없음 (0) | 2023.03.10 |
---|---|
잭슨과의 JSON 필드 복제 (0) | 2023.03.10 |
mvn spring-boot: 실행이 스프링을 시작하지 않음 (0) | 2023.03.10 |
요소 내부에 각도 js 템플릿 문자열을 삽입합니다. (0) | 2023.03.10 |
mongoose에서 id와 _id의 차이점은 무엇입니까? (0) | 2023.03.10 |