'Spring'에 해당되는 글 7건

  1. 2016.08.24 Spring batch no.7 1
  2. 2016.08.24 Spring batch no.6
  3. 2016.08.24 Spring batch no.5
  4. 2016.08.24 Spring batch no.4
  5. 2016.08.24 Spring batch no.3
  6. 2016.08.24 Spring batch no.2
  7. 2016.08.24 Spring batch no.1

Spring batch no.7

Spring/Batch 2016. 8. 24. 14:21

7. transaction 설정.

tasklet 에서 사용되는 transaction 설정을 한다.


<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-4.2.xsd

http://www.springframework.org/schema/tx 

http://www.springframework.org/schema/tx/spring-tx-4.2.xsd

http://www.springframework.org/schema/aop 

http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">  

<bean id="dbTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dbDataSource" />

</bean>  

</beans>



'Spring > Batch' 카테고리의 다른 글

Spring batch no.6  (0) 2016.08.24
Spring batch no.5  (0) 2016.08.24
Spring batch no.4  (0) 2016.08.24
Spring batch no.3  (0) 2016.08.24
Spring batch no.2  (0) 2016.08.24
Posted by 선우아범
,

Spring batch no.6

Spring/Batch 2016. 8. 24. 14:19

6. datasource 설정.


Transaction manager에서 사용할 datasource 를 설정한다.


<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:jdbc="http://www.springframework.org/schema/jdbc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:jee="http://www.springframework.org/schema/jee"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-4.2.xsd

http://www.springframework.org/schema/jee 

http://www.springframework.org/schema/jee/spring-jee-4.2.xsd 

http://www.springframework.org/schema/jdbc 

http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd"> 

<beans profile="local">

<!-- JBOSS JNDI 설정 -->

<bean id="dbDataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> 

<property name="driverClassName"    value="${jdbc.pdb.driver}"/>

<property name="url"                value="${jdbc.pdb.url}"/>

<property name="username"           value="${jdbc.pdb.username}"/>

<property name="password"           value="${jdbc.pdb.password}"/>

<property name="initialSize"        value="${jdbc.pdb.initialSize}"/>

<property name="minIdle"            value="${jdbc.pdb.minIdle}"/>

<property name="maxIdle"            value="${jdbc.pdb.maxIdle}"/>

<property name="maxTotal"           value="${jdbc.pdb.maxTotal}"/>

<property name="maxWaitMillis"      value="${jdbc.pdb.maxWaitMillis}"/>

<property name="validationQuery"    value="${jdbc.pdb.validationQuery}"/>

<property name="testWhileIdle"      value="${jdbc.pdb.testWhileIdle}"/>

<property name="defaultAutoCommit"  value="${jdbc.pdb.defaultAutoCommit}"/>  

<property name="timeBetweenEvictionRunsMillis" value="${jdbc.pdb.timeBetweenEvictionRunsMillis}"/>

</bean>

</beans>

<!-- local이 아닌경우 서버의 tomcat 설정 파일을 사용한다. -->

<beans profile="!local">

<jee:jndi-lookup id="dbDataSource" jndi-name="java:/comp/env/jdbc/ds_aic_pdb" resource-ref="true" />

</beans> 

</beans>

'Spring > Batch' 카테고리의 다른 글

Spring batch no.7  (1) 2016.08.24
Spring batch no.5  (0) 2016.08.24
Spring batch no.4  (0) 2016.08.24
Spring batch no.3  (0) 2016.08.24
Spring batch no.2  (0) 2016.08.24
Posted by 선우아범
,

Spring batch no.5

Spring/Batch 2016. 8. 24. 14:16

5. application context 파일 설정.


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.2.xsd  

http://www.springframework.org/schema/context 

http://www.springframework.org/schema/context/spring-context-4.2.xsd">


<!-- 기본 환경설정용 properties 파일을 읽는 설정 -->  

<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:batch-default.properties</value>

</list>

</property>

<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />

<property name="ignoreResourceNotFound" value="true" />

<property name="ignoreUnresolvablePlaceholders" value="false" />

<property name="order" value="1" />

</bean>  

  

<context:component-scan base-package="com.batch" use-default-filters="false">

<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />

<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />

<context:include-filter type="annotation" expression="org.springframework.stereotype.Component" />

<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />

</context:component-scan> 

 

<import resource="classpath:/config/spring/context-*.xml" /> 

<import resource="classpath:/config/batch/job/**/job-*.xml" /> 

 

</beans>

'Spring > Batch' 카테고리의 다른 글

Spring batch no.7  (1) 2016.08.24
Spring batch no.6  (0) 2016.08.24
Spring batch no.4  (0) 2016.08.24
Spring batch no.3  (0) 2016.08.24
Spring batch no.2  (0) 2016.08.24
Posted by 선우아범
,

Spring batch no.4

Spring/Batch 2016. 8. 24. 13:58

4. job 설정 파일 생성. - job.xml


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:batch="http://www.springframework.org/schema/batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"

xmlns:hdp="http://www.springframework.org/schema/hadoop"

xsi:schemaLocation="

           http://www.springframework.org/schema/beans

           http://www.springframework.org/schema/beans/spring-beans.xsd

           http://www.springframework.org/schema/batch

           http://www.springframework.org/schema/batch/spring-batch.xsd

           http://www.springframework.org/schema/util 

           http://www.springframework.org/schema/util/spring-util.xsd

           http://www.springframework.org/schema/hadoop 

           http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">


<!-- ################### Job ################### -->

<batch:job id="SearchJob">

<batch:step id="Step1">

<batch:tasklet transaction-manager="TransactionManager">

<batch:chunk reader="ItemReader" writer="ItemWriter" commit-interval="1000" />

</batch:tasklet>

</batch:step>

</batch:job>



<!-- ################### ItemReader ################### -->

<bean id="ItemReader" class="com.batch.item.SerchItemReader" scope="step">

</bean>


<!-- ################### ItemWriter ################### -->


<bean id="ItemWriter"

class="com.batch.item.SearchItemWriter" scope="step">

</bean>


</beans>



- tasklet 은 Transaction manager가 있어야 실행 된다.


'Spring > Batch' 카테고리의 다른 글

Spring batch no.6  (0) 2016.08.24
Spring batch no.5  (0) 2016.08.24
Spring batch no.3  (0) 2016.08.24
Spring batch no.2  (0) 2016.08.24
Spring batch no.1  (0) 2016.08.24
Posted by 선우아범
,

Spring batch no.3

Spring/Batch 2016. 8. 24. 13:51

3. batch Item Writer 작성.


ItemWriter를 implements 하여 write method를 override 한다.

ItemWriter<Object> <- Object 는 ItemReader에서 return 값으로 넘겨준 Object 이다.



package com.batch.item;


import ......;


public class SearchItemWriter implements ItemWriter<Object> {

  @Override

public void write(List<? extends Object> items) throws Exception {

if (items != null && items.size() > 0) {

// do something...

}

}

}

'Spring > Batch' 카테고리의 다른 글

Spring batch no.6  (0) 2016.08.24
Spring batch no.5  (0) 2016.08.24
Spring batch no.4  (0) 2016.08.24
Spring batch no.2  (0) 2016.08.24
Spring batch no.1  (0) 2016.08.24
Posted by 선우아범
,

Spring batch no.2

Spring/Batch 2016. 8. 24. 13:47

2. batch item reader 작성


ItemReader 의 return 값이 null 이 아닌경우 계속 재 반복 하게 된다.

반복을 원하지 않으면 null을 명시적으로 return 해 주어야 한다.



package com.batch.item;


import org.springframework.batch.item.ItemReader;

import org.springframework.batch.item.NonTransientResourceException;

import org.springframework.batch.item.ParseException;

import org.springframework.batch.item.UnexpectedInputException;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.web.client.RestTemplate;


@Component

public class MelonSerchItemReader implements ItemReader<Object> {

@Override

public Object read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {

if (runFlag) {

runFlag = false;


return runFlag;

} else {

return null;

}

}

}



'Spring > Batch' 카테고리의 다른 글

Spring batch no.6  (0) 2016.08.24
Spring batch no.5  (0) 2016.08.24
Spring batch no.4  (0) 2016.08.24
Spring batch no.3  (0) 2016.08.24
Spring batch no.1  (0) 2016.08.24
Posted by 선우아범
,

Spring batch no.1

Spring/Batch 2016. 8. 24. 13:42

1. Spring batch job을 실행 할 Scheduler 를 작성한다.



package com.batch.scheduler;


import java.util.Date;


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.batch.core.JobParameters;

import org.springframework.batch.core.JobParametersBuilder;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Component;



@Component

public class SearchScheduler {


private static final Logger logger = LoggerFactory.getLogger(SearchScheduler .class);

// cron format : 초 분 시 일 월 요일

@Scheduled(cron="0 0 01 * * *")

// @Scheduled(cron="0 49 15 * * *")

// millisecond - 1000 : 1초

// @Scheduled(initialDelay=6000, fixedDelay=60000)

public void runBatch() throws Exception {

System.out.println("SearchScheduler run Batch():::::::::::::::::::::::::::::: ");

JobParameters jobParameters = new JobParametersBuilder()

.addDate("todayDate", new Date(System.currentTimeMillis()))

.toJobParameters();

logger.debug("## todayDate : {}", jobParameters.getDate("todayDate"));

this.runJob("melonSearchJob", jobParameters);

}

}



'Spring > Batch' 카테고리의 다른 글

Spring batch no.6  (0) 2016.08.24
Spring batch no.5  (0) 2016.08.24
Spring batch no.4  (0) 2016.08.24
Spring batch no.3  (0) 2016.08.24
Spring batch no.2  (0) 2016.08.24
Posted by 선우아범
,