一時間の初期化は、サーブレットのinit()メソッドで行うことができます。ここでの例では、上記の例で
public class CatalogServlet extends HttpServlet {
private BookDB bookDB;
public void init() throws ServletException {
bookDB = (BookDB)getServletContext().
getAttribute("bookDB");
}
ある、のServletContext属性が、当然のことながら、サーブレット呼び出し(状態を維持する通常の方法)の間に存在するだけで可変です。これはもちろん、あなたがどこか別の場所にこの変数をServletContextに格納していることを前提としています。もう1つの方法は、デプロイメント記述子に変数を作成することです。
<servlet
<servlet-name...
<servlet-class ...
<init-param>
<param-name>param1</param-name>
<param-value>value1</param-value>
</init-param>
</servlet>
これはそれに応答しない場合は、「新しいインスタンスが起動されるたびに」、明確にしてください:
は、あなたのデプロイメントディスクリプタ(web.xmlファイル)内の初期化パラメータを設定するには、ここでは一例です。
memcacheのエントリをバージョンアップしないで、バージョンが一致しない場合は、各展開でmemcacheの内容全体をプログラムでクリアするのではなく、バージョン番号をmemcacheキーに含めると、効果的にこれが処理されます(foo-1-blahがキャッシュにあり、foo-2-blahを要求しようとすると、それが欠落します)。 – Amber
展開時にあなた自身で実行しない限り、各展開時に何かを実行する方法はありません。アンバーの提案は良いものです。 –