java - Tomcatの起動時にプロジェクトの初期化プログラムを実行する方法
我想大声告诉你
我想大声告诉你 2017-07-05 10:02:11
0
4
1092

Tomcat を起動すると、コンソールに多くの情報が出力されますが、Tomcat 起動時にプロジェクト設定ファイルが多数読み込まれ、プロジェクトの初期化メソッドが呼び出されたことが示されていますが、それがどのように呼び出されたのかはわかりません。どこで呼ばれたのですか? Tomcat で何か設定する必要がありますか?

PS:javaweb プロジェクト

我想大声告诉你
我想大声告诉你

全員に返信(4)
洪涛

web.xmlで以下を設定します

リーリー
いいねを押す +0
某草草

web.xml でリスナーを探します

いいねを押す +0
洪涛

投稿者に必要なのは、システムがサーブレットのライフサイクルを理解することです。サーブレットを実装する場合、Web アプリケーションの開始時にどのメソッドが呼び出されるか。これに関する記事が多すぎます:

http://www.jianshu.com/p/1d50...
http://www.runoob.com/servlet...

いいねを押す +0
習慣沉默

方法は 3 つあります:

  1. @treeandgrass が言ったように、特定のサーブレット init(),但前提是在web.xml中给load-on-startup设上值(或者加@WebServlet アノテーションを書き換えます

  2. 特定のフィルターのinit(),配在web.xml中(或者加@WebFilterアノテーションを実装します);

  3. ServletContextListener インターフェースを実装し、contextInitialized(),配在web.xml中(或者加@WebListenerアノテーションを実装します)。

これら 3 つのメソッドのうち、私は最後のメソッド (ServletContextListener) を最も頻繁に使用します (通常、このメソッドは Web で Spring を使用する場合にのみ使用します)。これは常にフィルターおよびサーブレットの実行より優先され、特定の関数を実装しないためです。とフィルターを混ぜ合わせます。

初期化作業には以下が含まれます:

  • スレッドプール、データベース接続プール、ネットワーク接続プールの初期化

  • IoCコンテナのロード

  • タイマーをスタート

  • 初期化が必要なその他のオブジェクト
    上記の初期化作業のほとんどは、Web サーバーが停止したときに閉じる必要があり、これらのタスクは contextDestroyed() に記述する必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート