ファイルから読み込み、処理を行い、最後にカスタマイズされた出力を書き込むバッチバッチアプリケーションがあります。これはすべてワンステップで起こります。次のステップでは、入力ファイルをアーカイブするタスクレットがあります(別のフォルダに移動)。このアプリケーションはうまく動作します。しかし、今ではさらに処理されるリモートサーバ上でファイルを出力する必要があります。私は、アウトバウンドチャネルアダプタにフィードする入力チャネルを作成したスプリング統合を使用してsftpへの道を持っています。メッセージにペイロードとしてファイルを置き、メッセージをチャネルに送信します。私がここで見る唯一の問題は、毎回コンテキストを取得しなければならないことです。これは、タスクを実行するための頑丈な方法のように見える、春の設定ファイルを読み込むためです。 SBとSIを統合する方法について誰もが知っていますか?スプリングバッチとのスプリング統合を使用
私の設定を見たい場合はお知らせください... ありがとうございました!!
log.info("Starting transfer of outputFile : " + absoluteOutputFileName);
final File file = new File(absoluteOutputFileName);
final Message<File> message = MessageBuilder.withPayload(file).build();
AppContextProvider context = new AppContextProvider();
final MessageChannel inputChannel = context.getApplicationContext().getBean("toChannel",MessageChannel.class);
inputChannel.send(message);
log.info("transfer complete for : " + absoluteOutputFileName);
ご意見ありがとうございます。私はそれを通過します、私は私のアプリケーションの同じアプリケーションコンテキストを取得する方法を発見した瞬間。それが正しいかどうか、またはこれに問題がある場合は、お勧めします。私のオリジナルの質問にコードを追加しました –
実行するジョブごとにApplicationContextを作成するのはなぜですか? –
ジョブごとにApplicationContextを作成していません。私はスプリングの設定を一度ロードし、各ファイルごとに1つずつジョブを呼び出す(私は利用可能なファイルとループを実行するためにi \ pフォルダをチェックしている) –