Guice サーブレットが削除されたら、クリーンアップを行う必要があります。Guice サーブレットを使用しているときに、サーブレットの破壊にフックすることは可能ですか? クリーンアップ作業を行うには、インジェクターを使用する必要があります。
contextDestroyed
のメソッドをオーバーライドできますがGuiceServletContextListener
、インジェクターにアクセスするにはどうすればよいですか?
サーブレットの破壊に対応するより良い方法はありますか?
Guice サーブレットが削除されたら、クリーンアップを行う必要があります。Guice サーブレットを使用しているときに、サーブレットの破壊にフックすることは可能ですか? クリーンアップ作業を行うには、インジェクターを使用する必要があります。
contextDestroyed
のメソッドをオーバーライドできますがGuiceServletContextListener
、インジェクターにアクセスするにはどうすればよいですか?
サーブレットの破壊に対応するより良い方法はありますか?
GuiceServletContextListener で contextDestroyed メソッドをオーバーライドできますが、インジェクターにアクセスするにはどうすればよいでしょうか?
次のようにできます。
public class MyGuiceServletConfig extends GuiceServletContextListener {
private final Injector injector = Guice.createInjector(new ServletModule());
@Override
protected Injector getInjector() {
return injector;
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
injector.getInstance(MyCleanUp.class);
}
}
またはこのように:
public class MyGuiceServletConfig extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
return Guice.createInjector(new ServletModule());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
Injector injector = (Injector) sce.getServletContext()
.getAttribute(Injector.class.getName());
}
}