2017-09-15 16 views
0

私は春バッチを探索し、基本的な問題に取り掛かりました。春バッチ・ジョブ・リポジトリ

ジョブリポジトリ用にデータソースを個別に設定する方法を教えてください。私のビジネスデータは別のリポジトリにあります。

2番目のバッチアプリケーションを試してみると、スプリングバッチのrepeateldyは同じジョブスキーマテーブルを繰り返し作成しようとします。

あなたのお手伝いをお待ちしております。

+0

あなたは春のブートを使用していますか? –

答えて

0

あなたがSpring Bootを使用している場合は、次のようにします。 以下では、必要なデータソースを提供するgetDatasource()メソッドを設定しています。これにより、起動時にデフォルトのデータソースが使用されなくなります。

package com.demo.configuration; 

import org.springframework.batch.core.Job; 
import org.springframework.batch.core.Step; 
import org.springframework.batch.core.StepContribution; 
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; 
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; 
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; 
import org.springframework.batch.core.scope.context.ChunkContext; 
import org.springframework.batch.core.step.tasklet.Tasklet; 
import org.springframework.batch.repeat.RepeatStatus; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.jdbc.datasource.SimpleDriverDataSource; 

import javax.sql.DataSource; 

/** 
* Created by Sushil Behera on 12/26/2017. 
*/ 
@Configuration 
@EnableBatchProcessing 
public class BatchConfiguration { 

    @Autowired 
    public JobBuilderFactory jobBuilderFactory; 

    @Autowired 
    public StepBuilderFactory stepBuilderFactory; 

    @Bean 
    public Job job1(){ 
     return jobBuilderFactory.get("job1") 
      .start(step1()) 
      .build(); 
    } 

    @Bean 
    public Step step1(){ 
     return stepBuilderFactory.get("job1step1") 
      .tasklet(
        new Tasklet(){ 
         @Override 
         public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception { 
          System.out.println("Tasklet executed"); 
          return RepeatStatus.FINISHED; 
         } 
        } 
      ).build(); 
    } 

    @Bean 
    @ConfigurationProperties(prefix = "demo.datasource") 
    public DataSource getDatasource(){ 
     return new SimpleDriverDataSource(); 
    } 

} 

application.properties

spring.application.name=Demo 
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver 
spring.datasource.url=URL1 
spring.datasource.username=ABC 
spring.datasource.password=ABC1 
demo.datasource.url=URL2 
demo.datasource.driverClassName=oracle.jdbc.driver.OracleDriver 
demo.datasource.username=XYZ 
demo.datasource.password=XYZ1 
関連する問題