入門すべてのガイドバッチサービスの作成このガイドでは、基本的なバッチ駆動型ソリューションの作成プロセスについて説明します。構築するものCSVスプレッドシートからデータをインポートし、それをカスタムコードで変換し、データベースに最終結果を保存するサービスを構築します。3.2+(Apache)コードを直接IDEにインポートすることもできます。入門ガイドと同様に、最初から始めて各ステップを完了するか、すでに慣れている場合は基本的なセットアップステップをバイパスできます。いずれにしても、最終的に動作するコードになります。Initializrから開始に進みます。基本をスキップするには、次の手順を実行します。使用してクローンを作成します。https://github.com/spring-guides/gs-batch-processing.git(英語)gs-batch-processing/initialにcdビジネスクラスを作成するにジャンプしてください。完了したときは、gs-batch-processing/completeのコードに対して結果を確認できます。ビジネスデータ通常、顧客またはビジネスアナリストがスプレッドシートを提供します。この簡単な例では、src/main/resources/sample-data.csvで作成されたデータを見つけることができます。Jill,DoeJoe,DoeJustin,DoeJane,DoeJohn,Doeこのスプレッドシートには、各行にコンマで区切られた名と姓が含まれています。これは、Springがカスタマイズなしで処理できるかなり一般的なパターンです。次に、データを保存するテーブルを作成するSQLスクリプトを作成する必要があります。src/main/resources/schema-all.sqlにあります。すべてのプラットフォームのデフォルトです。開始する必要があります。Initializrは、アプリケーションに必要なすべての依存関係をすばやく取り込む方法を提供し、多くのセットアップを行います。BatchおよびHyperSQLデータベースの依存関係が必要です。次のイメージは、このサンプルプロジェクト用に設定されたInitializrを示しています。前の図は、Mavenがビルドツールとして選択されたInitializrを示しています。Gradleも使用できます。値をそれぞれグループおよびアーティファクトとして表示します。このサンプルの残りの部分では、これらの値を使用します。ファイルを示しています。ファイルを示しています。src/main/java/com/example/batchprocessing/Person.javaから)が示すように、データの行を表すコードを作成できます。クラスをインスタンス化するには、コンストラクターを介して、またはプロパティを設定して、姓と名を使用します。中間プロセッサを作成するバッチ処理の一般的なパラダイムは、データを取り込み、変換し、別の場所にパイプで送ることです。ここでは、名前を大文字に変換する簡単なトランスフォーマーを作成する必要があります。src/main/java/com/example/batchprocessing/PersonItemProcessor.javaから)は、その方法を示しています。インターフェースを実装しています。これにより、このガイドの後半で定義するバッチジョブにコードを簡単に接続できます。Personに変換します。入力と出力のタイプは同じである必要はありません。実際、1つのデータソースを読み取った後、アプリケーションのデータフローに異なるデータタイプが必要になる場合があります。バッチジョブをまとめるここで、実際のバッチジョブをまとめる必要があります。Batchは、カスタムコードを記述する必要性を減らす多くのユーティリティクラスを提供します。代わりに、ビジネスロジックに集中できます。クラスを作成する必要があります。アノテーションは、ジョブをサポートし、多くの脚の作業を節約する多くの重要なBeanを追加します。@EnableBatchProcessingが提供)を使用しています。完了するとデータが失われます。必要ないくつかのファクトリーをオートワイヤーします。クラスに次のBeanを追加して、リーダー、プロセッサ、およびライターを定義します。.build();}コードの最初のチャンクは、入力、プロセッサ、および出力を定義します。ItemReaderを作成します。Personに変換します。インスタンスを作成します。これは、データを大文字に変換するためのものです。ItemWriterを作成します。これはJDBC宛先を対象としており、@EnableBatchProcessingによって作成されたdataSourceのコピーを自動的に取得します。Personを挿入するために必要なSQLステートメントが含まれています。src/main/java/com/example/batchprocessing/BatchConfiguration.javaから)は、実際のジョブ構成を示しています。.build();}最初のメソッドはジョブを定義し、2番目のメソッドは単一のステップを定義します。ジョブはステップから構築されます。各ステップには、リーダー、プロセッサー、ライターが含まれます。このジョブ定義では、ジョブがデータベースを使用して実行状態を維持するため、インクリメンターが必要です。次に、各ステップをリストします(ただし、このジョブには1つのステップしかありません)。APIは完全に構成されたジョブを生成します。ステップ定義では、一度に書き込むデータ量を定義します。この場合、一度に最大10個のレコードを書き込みます。次に、先ほど注入したビットを使用して、リーダー、プロセッサー、およびライターを構成します。ItemWriter<Person>と並んでいます。バッチ構成の最後の部分は、ジョブが完了したときに通知を受ける方法です。src/main/java/com/example/batchprocessing/JobCompletionNotificationListener.javaから)は、そのようなクラスを示しています。使用して結果をインスペクションします。アプリケーションを実行可能にするバッチ処理はWebアプリとWARファイルに埋め込むことができますが、以下に示すより単純なアプローチはスタンドアロンアプリケーションを作成します。メソッドによって駆動される単一の実行可能なJARファイルにすべてをパッケージ化します。Initializrがアプリケーションクラスを作成しました。この単純な例では、さらに変更することなく機能します。src/main/java/com/example/batchprocessing/BatchProcessingApplication.javaから)は、アプリケーションクラスを示しています。次のすべてを追加する便利なアノテーションです。アプリケーションコンテキストのBean定義のソースとしてクラスにタグを付けます。Bootに指示します。クラスパスにある場合、このアノテーションはアプリケーションにWebアプリケーションとしてフラグを立て、DispatcherServletのセットアップなどの主要な動作をアクティブにします。パッケージ内の他のコンポーネント、構成、およびサービスを探して、コントローラーを検出させるように指示します。メソッドを使用してアプリケーションを起動します。ファイルもありません。このWebアプリケーションは100%純粋なJavaであり、接続機能やインフラストラクチャの構成に対処する必要はありませんでした。デモンストレーションのために、JdbcTemplateを作成し、データベースを照会し、バッチジョブが挿入する人の名前を出力するコードがあります。実行可能JARを構築するコマンドラインからGradleまたはMavenを使用してアプリケーションを実行できます。必要なすべての依存関係、クラス、およびリソースを含む単一の実行可能JARファイルを構築して実行することもできます。実行可能なjarを構築すると、開発ライフサイクル全体、さまざまな環境などで、サービスをアプリケーションとして簡単に提供、バージョン管理、およびデプロイできます。bootRunを使用してアプリケーションを実行できます。使用してJARファイルをビルドしてから、JARファイルを実行できます。spring-boot:runを使用してアプリケーションを実行できます。JARファイルをビルドしてから、JARファイルを実行できます。target/gs-batch-processing-0.1.0.jarここで説明する手順は、実行可能なJARを作成します。クラシックWARファイルを作成することもできます。ジョブは、変換された各人の行を出力します。ジョブの実行後、データベースのクエリからの出力も確認できます。次の出力のようになります。スプレッドシートからデータを取り込んで処理し、データベースに書き込むバッチジョブを作成しました。次のガイドも役立ちます。投稿ガイドラインを参照してください(GitHub)。リリースされています。先にジャンプPivotalは、あなたの進歩を加速させるトレーニングと認定を提供します。Tomcat®のサポートとバイナリを提供します。1つの簡単なサブスクリプションで。学習したい方に(英語)今後のイベントSpringOneプラットフォーム(英語)9月21〜24日、シアトルSpringOneツアー(英語)最高のクラウドネイティブJavaコンテンツが直接提供されます。