JPAエンティティとリポジトリクラス(および関連するサービス)がうまく動作するSpring Boot RESTアプリケーションがあります。今週は、これらのクラスを毎週のCRONジョブやコマンドラインから実行される同様のワンタイムプロセスのような他の目的で再利用したいと考えています。Spring Boot RESTアプリケーションでクラスを再利用するには?
これを行うにはどうすればよいでしょうか?課題は、永続コンテキストのプロパティがapplication.propertiesに設定され、永続コンテキストがApplicationクラスが初期化されていない限り初期化されないことです。
これらのクラスをすべて別のプロジェクトに分けて、別の方法で永続コンテキストを定義することはできますが、エンティティやDAOメソッドによって何かが変更された場合、メンテナンスの頭痛になります。
私が本当に気に入っているのは、コマンドラインから、メインアプリケーションの代わりに別のクラスを実行して永続コンテキストを適切に初期化するようにSpringブートに指示する方法です。これを行う方法は?
[編集]それはCommandLineRunnerを実装@Componentを作成することによってこれを行うことが可能です:
は(Possible to use Spring Boot repositories from another main class?私は何の応答を得なかった同様の質問をしますか)?私はただ完全なRESTアプリケーションではなく、単純なワンタイムプロセスを実行したいだけです。
お返事ありがとうございます。私は複数のメインクラスのことを試しましたが、私は間違っているか、または永続コンテキストを適切に初期化しません。私はRESTアプリケーションからDAOレイヤーを分離したいのですが、もう一度、永続コンテキストが正しく機能するようにするのが面倒でした。これを行うには簡単な例がありますが、それでもRESTコントローラ/サービス層からアクセスできるようにしていますか? – Andrew
私は最終的にこれをプロファイルで動作させることができましたが、あなたが記述するほど簡単ではありませんでした。私は別の答えとしてより詳細な説明を書くつもりです。しかし私は正しい方向で私を指摘してくれてありがとう、私はまだ別のSpringブートプロジェクトとして永続コンテキストを持つ方法が不思議です。 – Andrew
@Klausデータレイヤーを完全に別個のモジュールと言うときは、独自のMainクラスを持っていますか?ファイル構造を共有してもよろしいですか?私は別々のDOとサービスモジュールを持つJava 6プロジェクトを持っています。私は春のブートを使用してそのような何かをするのに苦労している? – Kay