当使用guice servlet扩展时,是否可以对servlet破坏作出反应?
当guiceservlet被删除时,我需要做一些清理。在使用guice servlet时,是否可以钩住servlet销毁?我需要用注射器来做清洁工作 我可以覆盖当使用guice servlet扩展时,是否可以对servlet破坏作出反应?,guice,guice-servlet,Guice,Guice Servlet,当guiceservlet被删除时,我需要做一些清理。在使用guice servlet时,是否可以钩住servlet销毁?我需要用注射器来做清洁工作 我可以覆盖GuiceServletContextListener中的contextdestromed方法,但如何访问喷油器 有没有更好的方法来应对servlet破坏 我可以覆盖GuiceServletContextListener中的contextDestroyed方法,但是如何访问注入器呢 你可以这样做: public class MyGuice
GuiceServletContextListener
中的contextdestromed
方法,但如何访问喷油器
有没有更好的方法来应对servlet破坏
我可以覆盖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());
}
}
或者像这样:
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());
}
}