検索

ホームページ  >  に質問  >  本文

java - Tomcatの起動時にプロジェクトの初期化プログラムを実行する方法

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

PS:javaweb プロジェクト

我想大声告诉你我想大声告诉你2701日前1062

全員に返信(4)返信します

  • PHP中文网

    PHP中文网2017-07-05 10:04:11

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

    リーリー

    返事
    0
  • 某草草

    某草草2017-07-05 10:04:11

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

    返事
    0
  • PHP中文网

    PHP中文网2017-07-05 10:04:11

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

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

    返事
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:04:11

    方法は 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
  • キャンセル返事