Java を使用して Spring Batch に基づくバッチ処理アプリケーションを開発する方法

PHPz
リリース: 2023-09-20 14:37:41
オリジナル
670 人が閲覧しました

如何使用Java开发一个基于Spring Batch的批处理应用

Java を使用して Spring Batch に基づくバッチ処理アプリケーションを開発する方法。具体的なコード例が必要です。

バッチ処理アプリケーションは一般的なデータ処理方法であり、次のことが可能です。バックグラウンドでの実行で使用して、大量のデータを自動的に処理します。 Java を使用したバッチ処理アプリケーションの開発は、Spring Batch フレームワークを通じて実現できます。Spring Batch は、開発者がバッチ処理アプリケーションの開発を簡素化するのに役立つ再利用可能なコンポーネントのセットを提供するオープンソースのバッチ処理フレームワークです。

以下では、Java を使用して Spring Batch に基づくバッチ処理アプリケーションを開発する方法を紹介し、詳細なコード例を示します。

ステップ 1: 依存関係をインポートする

まず、Spring Batch の依存関係をプロジェクトにインポートする必要があります。プロジェクトの pom.xml ファイルに次の依存関係を追加できます:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-batch</artifactId>
</dependency>
ログイン後にコピー

ステップ 2: データ ソースと Spring Batch の基本構成を構成する

次に、データ ソースを構成する必要があります。 Spring Batch の基本構成。 application.properties (または application.yml) ファイルに次の構成を追加できます:

spring.datasource.url=<数据库URL>
spring.datasource.username=<用户名>
spring.datasource.password=<密码>

spring.batch.job.names=<批处理作业名称>
ログイン後にコピー

ここで、、および

ステップ 3: データ モデルを作成する

次に、バッチ プロセスでデータを表すデータ モデル クラスを作成する必要があります。たとえば、バッチ アプリケーションがユーザー情報テーブルを処理する必要があると仮定すると、ユーザー情報を表す User クラスを作成できます。

public class User {
    private String name;
    private int age;
    // 省略getter和setter方法
}
ログイン後にコピー

ステップ 4: リーダー (ItemReader) を作成する

次へ、データを読み取るためにItemReaderを作成する必要があります。 Spring Batch は、JDBC リーダー (JdbcCursorItemReader)、ファイル リーダー (FlatFileItemReader) など、さまざまなデフォルトのリーダー実装を提供します。ここでは、JDBC リーダーを使用してデータベースからデータを読み取ります。

@Bean
public ItemReader<User> userItemReader(DataSource dataSource) {
    JdbcCursorItemReader<User> reader = new JdbcCursorItemReader<>();
    reader.setDataSource(dataSource);
    reader.setSql("SELECT name, age FROM user");
    reader.setRowMapper((resultSet, rowNum) -> {
        User user = new User();
        user.setName(resultSet.getString("name"));
        user.setAge(resultSet.getInt("age"));
        return user;
    });
    return reader;
}
ログイン後にコピー

ここでは JdbcCursorItemReader を使用し、setDataSource() メソッドを通じてデータ ソースを設定し、setSql() メソッドを通じて SQL ステートメントを設定し、setRowMapper() メソッドを通じて結果セット マッピングを設定します。

ステップ 5: プロセッサ (ItemProcessor) を作成する

次に、データを処理するための ItemsProcessor を作成する必要があります。 ItemProcessor は、読み取られたデータの処理と変換を担当します。たとえば、UserItemProcessor を作成して、User オブジェクトの年齢に 1 を加えることができます。

public class UserItemProcessor implements ItemProcessor<User, User> {
    @Override
    public User process(User user) {
        user.setAge(user.getAge() + 1);
        return user;
    }
}
ログイン後にコピー

ステップ 6: ライター (ItemWriter) を作成する

次に、ItemWriter を作成する必要があります。加工したデータを書き込みます。 Spring Batch は、JDBC ライター (JdbcBatchItemWriter)、ファイル ライター (FlatFileItemWriter) など、さまざまなデフォルトのライター実装も提供します。ここでは、JDBC ライターを使用してデータベースにデータを書き込みます。

@Bean
public ItemWriter<User> userItemWriter(DataSource dataSource) {
    JdbcBatchItemWriter<User> writer = new JdbcBatchItemWriter<>();
    writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>());
    writer.setSql("INSERT INTO user (name, age) VALUES (:name, :age)");
    writer.setDataSource(dataSource);
    return writer;
}
ログイン後にコピー

ここでは JdbcBatchItemWriter を使用し、setItemSqlParameterSourceProvider() メソッドを通じてパラメータ プロバイダを設定し、setSql() メソッドを通じて SQL ステートメントを設定し、setDataSource() メソッドを通じてデータ ソースを設定します。

ステップ 7: ジョブの作成

最後に、リーダー、プロセッサー、ライター、および他の Spring Batch コンポーネントを含めるジョブを作成する必要があります。ジョブとステップは、JobBuilderFactory と StepBuilderFactory を使用して作成できます。たとえば、userStep を含む userJob を作成できます。

@Bean
public Job userJob(JobBuilderFactory jobBuilderFactory, Step userStep) {
    return jobBuilderFactory.get("userJob")
            .incrementer(new RunIdIncrementer())
            .flow(userStep)
            .end()
            .build();
}

@Bean
public Step userStep(StepBuilderFactory stepBuilderFactory,
                     ItemReader<User> userItemReader,
                     ItemProcessor<User, User> userItemProcessor,
                     ItemWriter<User> userItemWriter) {
    return stepBuilderFactory.get("userStep")
            .<User, User>chunk(10)
            .reader(userItemReader)
            .processor(userItemProcessor)
            .writer(userItemWriter)
            .build();
}
ログイン後にコピー

ここでは、StepBuilderFactory の get() メソッドを使用してステップを作成し、chunk() メソッドを通じてバッチ タスクのサイズを設定します (つまり、毎回処理されるデータ量)。

これまでに、Spring Batch をベースにしたバッチ処理アプリケーションの開発が完了しました。バッチジョブはuserJobを実行することで開始できます。

概要

この記事では、Java を使用して Spring Batch に基づくバッチ処理アプリケーションを開発する方法を紹介します。この記事では、依存関係のインポート、データ ソースの構成、Spring Batch の基本構成から、データ モデル、リーダー、プロセッサー、ライター、ジョブの作成まで、詳細なコード例が提供されています。この記事が、読者が Java の Spring Batch に基づくバッチ処理アプリケーションの開発をすぐに始めるのに役立つことを願っています。

以上がJava を使用して Spring Batch に基づくバッチ処理アプリケーションを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート