現在、Web インターフェイスを持たず、Web コンテナーで実行されていない既存の Java アプリケーション (Spring ベース) があります。起動プログラムとうまくパッケージ化され、機能します。
私がする必要があるのは、いくつかの管理タイプのもののための管理 Web インターフェイスを追加し、リアルタイムのメトリックを取得し、おそらくいくつかのグラフを追加して、すべてが機能していることをユーザーに知らせて、あたたかくぼんやりとした感覚をユーザーに与えることです。私たちは Spring ショップであり、一部の Web アプリケーションは既に Spring MVC を使用しているため、それは私たちにとっては理にかなっていますが、社内の Spring 担当者からどのように進めるべきかについての提案には満足していません.
この Web インターフェースを追加するには、どのような方法が理想的でしょうか?
- アプリケーションを Web アプリケーションに変換し、Web コンテナーでアプリケーションを起動します。私はこのアプローチにあまり熱心ではありません。Web 層は、実際にはプライマリ アプリケーションの二次的なものだからです。
- war としてパッケージ化する別のプロジェクトを作成し、既存のアプリに Jetty を埋め込み、war をロードします。コンテキスト ローダー リスナーを使用して、アプリケーションのルート コンテキストを Web アプリケーションのスプリング コンテキストの親にすることができると思います。これには、私のMavenプロジェクトを2つのプロジェクトに分割することが含まれます。プライマリ アプリケーションが Web 対応ではないため、Web 層とプライマリ アプリケーション間の通信に既存の Web テクノロジを使用できません。
- Jetty を埋め込み、Spring MVC のものをアプリに直接配置します。私は以前にこのアプローチを行ったことがありますが、いくつかの醜さを伴います - たとえば、JSP タグ ライブラリを私の jar に展開します。
ここでいくつかのきれいな分離について何か考えはありますか?
また、私の現在の jar には、いくつかのシェル スクリプトを起動するいくつかのユーティリティ アプリケーションが含まれています。純粋な WAR ルートに進むと、これはそれほど簡単ではなくなります。なぜなら、Java を war ファイルに向けて、実行するクラスを選択することができないからです。
ありがとう。