[SPRING] Java 구성 사용시 스프링 배치 테이블 접 두부
SPRINGJava 구성 사용시 스프링 배치 테이블 접 두부
내 스프링 배치 저장소 (Oracle 데이터베이스에 배포)는 스키마 이름을 앞에 추가 해야하는 다른 스키마에 있습니다.
XML 구성을 사용할 때는 다음과 같이 쉽습니다.
<job-repository id="jobRepository" table-prefix="GFA.BATCH_" />
그러나 Java Config를 사용하면 더 까다로워집니다. 내가 찾은 가장 좋은 해결책은 Java Config 클래스가 DefaultBatchConfigurer를 확장하고 createJobRepository () 메소드를 재정의하는 것입니다.
@Configuration
@EnableBatchProcessing
public class BatchConfiguration extends DefaultBatchConfigurer{
@Autowired
private DataSource dataSource;
@Autowired
private PlatformTransactionManager transactionManager;
@Override
protected JobRepository createJobRepository() throws Exception {
JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
factory.setDataSource(dataSource);
factory.setTransactionManager(transactionManager);
factory.setTablePrefix("GFA.BATCH_");
factory.afterPropertiesSet();
return factory.getObject();
}
...
}
XML 솔루션과 비교하면 거의 코드입니다! 그리고 그것은 너무 논리적이지 않습니다-첫 번째 추측은 다음과 같이 @Bean 메소드를 제공하는 것이 었습니다.
@Bean
public JobRepository jobRepository() throws Exception {
JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
factory.setDataSource(dataSource);
factory.setTransactionManager(transactionManager);
factory.setTablePrefix("GFA.BATCH_");
factory.afterPropertiesSet();
return factory.getObject();
}
그러나 이것은 작동하지 않습니다.
내 질문은 : 내 솔루션이 최적입니까 아니면 더 나은 솔루션입니까? 매우 직관적이지 않은 클래스의 메소드를 재정의하는 대신 Bean을 정의하는 것을 선호합니다 ... 그리고 XML 구성에서 한 줄 코드에 다소 근접하도록 코드를 줄일 수 있다면 더 좋을 것입니다.
해결법
-
==============================
1.배치 구성에 등록 된 모든 특성 파일에이 행을 추가하십시오.
배치 구성에 등록 된 모든 특성 파일에이 행을 추가하십시오.
spring.batch.table-prefix= GFA.BATCH_
참고로 접두사 spring.batch는 Spring 부트와 함께 제공되는 org.springframework.boot.autoconfigure.batch.BatchProperties와 매핑됩니다. github의 소스 코드를 참조하십시오.
from https://stackoverflow.com/questions/37436658/spring-batch-table-prefix-when-using-java-config by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Springfox Swagger-UI를 추가했는데 작동하지 않습니다. 무엇을 놓치고 있습니까? (0) | 2019.08.14 |
---|---|
[SPRING] 비동기 스프링에 여러 threadPoolExecutor를 사용하는 방법 (0) | 2019.08.14 |
[SPRING] RESTful Spring MVC 컨트롤러에서 유효성 검사 오류 및 예외를 처리하는 방법은 무엇입니까? (0) | 2019.08.14 |
[SPRING] 퍼즐 모듈을 사용하여 jdk9로 스프링 부트 실행 (0) | 2019.08.14 |
[SPRING] @ControllerAdvice로 간단한 서블릿 필터 작동 (0) | 2019.08.14 |