0

Jersey で REST サービスを作成しています。一部のリソース (一部のグローバル マップやファイルなど) は、最初のリクエストが到着する前にロードする必要があります (このリソースのロードには 20 秒かかるため)。したがって、これらのリソースを保持するためにいくつかの静的フィールド (属性) を作成します。これは、この REST サービスを開始するときに初期化する必要があると考えているためです。

ただし、最初のリクエストを送信したときにのみ静的リソースが読み込まれるという奇妙な問題が 1 つ見つかりました。そのため、最初のリクエストでは、応答を得るのに常に 20 秒以上かかりますが、その後のリクエストははるかに高速です (リソースがロードされているため)。

Javaがリクエストの前にこれらの静的フィールドを初期化しない理由を誰か説明してもらえますか?

4

1 に答える 1

1

Java では、クラスは最初にロードされるときに初期化されます。クラスをロードするのは、最初のリクエストです。

多分これが役立つでしょう。

于 2012-08-27T10:39:05.823 に答える