Spring Batchを開始するにはどうすればよいですか? [閉まっている]
-
05-07-2019 - |
質問
Spring Batch を学習しようとしていますが、スタートアップガイドは非常にわかりにくいです。
のようなコメントあなたはかなり良いアイデアを得ることができます を調べてジョブをセットアップする方法 の単体テスト org.springframework.batch.sample パッケージ(src / main / java内)および 構成 src / main / resources / jobs。
まったく役に立たない。 また、サンプルプロジェクトは非常に複雑です(109のクラスを持つ17の空でない名前空間)! Spring Batchを始めるためのより簡単な場所はありますか?
解決
いくつかのポインター:
- 春バッチHelloWorld
- Spring Batch" Hello World" 1
- 春バッチ" Hello World" 2
- Spring Batchの初見(archive.org経由)
- Spring Batchの最初の部分、パート2 (archive.org経由)
- 春バッチ:Hello World!
他のヒント
ユーザーガイドが非常に混乱していることに同意します(いずれにしてもSpring Coreユーザーガイドと比較して)。適度に複雑なバッチシナリオで遭遇する非常に重要な落とし穴に適切に対処していません。
新しいスターターとして掘り下げて、要件を決定する必要がある重要なこと、
- 例外の設定(スキップするとき、失敗するとき、再試行するとき)
- 実行コンテキストを使用して状態を維持します(たとえば、ステップ実行コンテキストとジョブ実行コンテキストを使用するタイミング)。
- 一般的な状態の維持(特に入力パラメーターにはステップスコープを使用)
しかし、忍耐する価値はあります。バッチプログラミングは、他のサーバーサイドスタイルとは大きく異なり、通常のSpringの「パターンの抽象化」から大きなメリットが得られます。アプローチ。
Spring Batchワゴンに飛び乗る前に、SOのクレトスがその欠点について何と言っているかを読んでおくとよいでしょう:
http:// www.cforcoding.com/2009/07/spring-batch-or-how-not-to-design-api.html 。
最近、Spring Batchを評価しましたが、肥大化とオーバーヘッドを除いてプロジェクトに何も追加されないことに気付いたときに、すぐにそれを拒否しました。 Spring Batchは最終的にはOKの製品になるかもしれません(今回はEJBがそれを正しく実現したように)が、現時点では問題を探しているソリューションのように見えます。
最近、Spring Batchを実際に試してみました。私の実装では、インメモリリポジトリを使用しました(プロジェクトの状況では再起動と再試行が優先されなかったためです)が、リチャードがJobRepositoryについて言っていることは理解できます。データベーススキーマ。
Spring Batch 2.1の場合、リポジトリに関するいくつかのドキュメントを提供します。 http://static.springsource.org/spring-batch/reference/html/metaDataSchema.html 。データベース固有の実装に対処する方法に関する議論を含みます。テーブルを作成するためのDDLは、Spring Batch JARファイルのコアにあります。
spring-batch-core-2.1.0.RELEASE.jar:/ org / springframework / batch / core / *。sql
スクリプトは、DB2、Derby、H2、HSQLDB、MySQL、Oracle 10g、PostgreSQL、MS SQL、およびSybase用です。
このチュートリアルでは、カンマ区切りのレコードと固定長レコードのリストをインポートすることが主な目的である一連のジョブの処理方法を示すために、簡単なSpring Batchアプリケーションを作成します。さらに、Spring MVCを使用してWebインターフェースを追加し、手動でジョブをトリガーする方法を教え、インポートされたレコードを視覚的に検査できるようにします。データ層では、JPA、Hibernate、およびMySQLを使用します。
https://github.com/langmi/spring-batch-examples
これには、かなり良い基本的な例が含まれています。
Spring Batchを社内のバッチフレームワークの代替として考え始めました。実行中/以前に実行したジョブインスタンスの概要を提供するために、ジョブとJMXインターフェイスをスケジュールする機能を備えたバッチサーバーを実際に作成するのに1日もかかりませんでした。 ただし、Caoilteと同様に、ドキュメントに問題があります。主なもの、およびドキュメントやjavadocsにないものは、JobRepositoryに必要なテーブルです。デフォルトでは、新しいサーバーの要件の1つであるデータベース永続性JobRepositoryがありますが、必要なテーブルについての言及は見つかりません。それらについて言及するために、Googleで高低を検索する必要がありました(ドキュメントに記載されている場合は、謙虚なパイに塩を入れます)。
Spring Batch内で実行するバッチを実際に作成することは、利用可能な構成オプションの膨大な配列を考えると、かなり複雑なタスクだと思います。これは私の目の強みです。 xmlで複雑なバッチタスクを構成する機会を提供しますが、これは他のバッチフレームワーク(私が知っている)にはまだありません。ただし、Spring Batchのパワーを実際に利用したくない場合は、タスクレットステップを1つだけ使用してジョブを作成しないでください(ただし、オーバーヘッドの価値があるかどうかを自問する必要があります)。
皆さんがそれを放棄したのは残念ですが、フレームワークは実際に素晴らしいです。ただし、クイックスタートが必要な場合は、 Spring Batch Quick開始
/アナトリー