[SPRING] 봄 배치 및 봄 통합
SPRING봄 배치 및 봄 통합
Spring Batch와 Spring Integration을 사용하여 데이터베이스에서 데이터를 가져 와서 파일에 쓰고 원격 서버로 ftp하고 싶습니다.
하지만 내 문제는 내 테이블에 대한 도메인 개체를 만들고 싶지 않다는 것입니다. 내 쿼리는 무작위이며 데이터를 읽고 파일에 쓰고 전송하는 무언가가 필요합니다.
각각의 도메인 객체를 생성하지 않고 Spring Batch와 Integration을 사용할 수 있습니까?
해결법
-
==============================
1.전혀. JDBC ItemReader 또는 JPA ItemReader 중 하나를 ColumnMapRowMapper와 함께 사용하여 결과 집합의 맵을 검색 할 수 있습니다. FlatFileItemWriter를 사용하여 원하는 형식으로 데이터를 출력 할 수 있습니다 (제공되는 클래스로 매우 쉽게 구분되며, 고정 너비는지도를 고정 폭 문자열로 변환하기 위해 하나의 클래스를 작성하는 것을 의미합니다).
전혀. JDBC ItemReader 또는 JPA ItemReader 중 하나를 ColumnMapRowMapper와 함께 사용하여 결과 집합의 맵을 검색 할 수 있습니다. FlatFileItemWriter를 사용하여 원하는 형식으로 데이터를 출력 할 수 있습니다 (제공되는 클래스로 매우 쉽게 구분되며, 고정 너비는지도를 고정 폭 문자열로 변환하기 위해 하나의 클래스를 작성하는 것을 의미합니다).
저는 스프링 배치 (Spring Batch)를 사용하여 이것을 꽤 자주 처리합니다.
리소스, 데이터 소스를 정의하고 SQL을 제공하는 것 외에,이 (테스트되지 않은) 구성은 여러분이 묻는 바를 정확히 수행합니다.
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/batch" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> <job-repository id="jobRepository" data-source="jobDataSource"/> <beans:bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="jobDataSource" /> <beans:bean id="extractReader" scope="step" class="org.springframework.batch.item.database.JdbcCursorItemReader"> <beans:property name="dataSource" ref="appDataSource" /> <beans:property name="rowMapper"> <beans:bean class="org.springframework.jdbc.core.ColumnMapRowMapper" /> </beans:property> <beans:property name="sql"> <beans:value> . . . </beans:value> </beans:property> </beans:bean> <beans:bean id="extractWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step"> <beans:property name="resource" ref="fileResource" /> <beans:property name="lineAggregator"> <beans:bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator"> <beans:property name="delimiter"> <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB" /> </beans:property> <beans:property name="fieldExtractor"> <beans:bean class="org.springframework.batch.item.file.transform.PassThroughFieldExtractor" /> </beans:property> </beans:bean> </beans:property> </beans:bean> <job id="extractJob" restartable="true"> <step id="extractStep" > <tasklet> <chunk reader="extractReader" writer="extractWriter" commit-interval="100" /> </tasklet> </step> </job> </beans:beans>
-
==============================
2.Spring Batch와의 현재 경험으로. 데이터베이스 호출을 JdbcTemplate 또는 이전 방법을 사용하여 처리하려는 경우 동일한 POJO를 다른 응용 프로그램 계층에서 다시 사용할 수 있습니다. 그러나 JAXB, JIXB 등 XML과 Hinernate, MyBatis 등을 사용하여 persiatance를 사용하면 문제가 발생합니다. POJO는 근원적 인 특수한 주석과 API 제약과 조밀하게 결합합니다.
Spring Batch와의 현재 경험으로. 데이터베이스 호출을 JdbcTemplate 또는 이전 방법을 사용하여 처리하려는 경우 동일한 POJO를 다른 응용 프로그램 계층에서 다시 사용할 수 있습니다. 그러나 JAXB, JIXB 등 XML과 Hinernate, MyBatis 등을 사용하여 persiatance를 사용하면 문제가 발생합니다. POJO는 근원적 인 특수한 주석과 API 제약과 조밀하게 결합합니다.
from https://stackoverflow.com/questions/7931623/spring-batch-and-spring-integration by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 자바 클라이언트로 스프링 보안 구현하기 (0) | 2019.04.29 |
---|---|
[SPRING] JPA와 Spring에서 Hibernate Validator 사용하기 (0) | 2019.04.29 |
[SPRING] Spring MVC에서 하나의 폼에 대한 많은 commandName (0) | 2019.04.29 |
[SPRING] Spring MockMVC - 컨트롤러 외부에서 실행되는 커스텀 유효성 검사기를 조롱하는 법 (0) | 2019.04.28 |
[SPRING] 카프카 탄력성 - 그룹 코디네이터 (0) | 2019.04.28 |