2016-04-13 7 views
0

私にはたくさんのサーブレットがあります。私は、すべての人がLoggerをインスタンス化することを望みます。まったく同じ方法です。
私はこのようなコードをbootsrapすることができる適切な(メインファイルのような)場所はありますか?
現在、私はServletクラスのサブクラスを作成しています。サーブレットクラスは、init関数とそれ以外のすべてのServlteクラスを継承しています。いくつかのアクションをすべてのサーブレットにブートストラップする方法はありますか?

+0

[Lombok](https://projectlombok.org/features/index.html)は便利な '@ Slf4j'を提供しています –

答えて

0

ロガーのために何をしようとしているのか分かりません(ロガーの能力が失われると思います)。しかし、サーブレットに一意のインスタンスが必要な場合は、宣言する必要があります静的な方法でそれを初期化してください:

static final SomethingClear GLOBAL; 
static{ 
    // do tons of things to init 
    GLOBAL = ClassWithStaticFunc.gimmeGlobalLoaded(); 
} 

なぜこの方法が良いですか?別の面白いことがあるか、面白いかもしれません:(静的(一意性の意味で、常にメモリ内のインスタンスになる)変数をサーブレットにロードする方法:

サーブレットには 'サーブレットコンテナ内に存在し、インスタンス化された独自のインスタンスであり、そのメソッド(doGet、doPost、doPut、doDelete)は、サーブレットコンテナによって実行され、要求と応答オブジェクトを要求する。 doGet、doPut、doDelete、doPostの外にある変数はメモリ内で一意になります。これはメモリを節約するためにjava時間の開始時にこのように行われました。 ..

これはセッションをマージする面白い方法です... :(

あなたはサーブレットのメソッドは、それはあなたのアプリケーションのすべてのセッションに割り当てられ、かつ明白ではないと見つけるのはそれほど簡単ではないであろうことを外のものに何かをASSINGもし...

マークだから、その優れましたオブジェクトは常に作成されるため(オブジェクト構築にアクセスすることはできません)、インスタンスは1つしかありません。サーブレットは素晴らしいものではありません...

サーブレットは独自のサーブレットを使用していましたが、サーブレットはweb.xmlにサーブレットの名前initParamとして、servlet-nameを常に鉱山のinstanciatorであったものと同じサーブレットに設定して)セッションマージを解決し、うまくいった。

関連する問題