Spring Web应用程序:Post-DispatcherServlet初始化

我正在使用Spring 3.2 DispatcherServlet.我正在寻找一个在DispatcherServlet初始化完成之后发生的初始化挂钩.标准的Spring解决方案或servlet解决方案.有什么建议么?

作为参考,遵循Servlet启动后的最终日志记录语句.我希望我的初始化方法在配置成功log statement之后立即执行.

DEBUG o.s.w.s.DispatcherServlet - Published WebApplicationContext of servlet 'mySpringDispatcherServlet' as ServletContext attribute with name [org.springframework.web.servlet.FrameworkServlet.CONTEXT.mySpringDispatcherServlet] 
INFO  o.s.w.s.DispatcherServlet - FrameworkServlet 'mySpringDispatcherServlet': initialization completed in 5000 ms   
DEBUG o.s.w.s.DispatcherServlet - Servlet 'mySpringDispatcherServlet' configured successfully 

根据我的研究,到目前为止,以下内容并未达到预期的效果:

>根据this answer扩展ContextLoaderListener /实现ServletContextListener.
>按照the javaoc实施WebApplicationInitializer.
>我的bean成功使用@PostConstruct;我正在寻找一个Servlet或容器级别的钩子,该钩子将在容器初始化和对bean进行后处理之后基本上执行.

解决方法:

根本问题是我无法覆盖最终方法HttpsServlet.init().我在DispatcherServlet.initWebApplicationContext中找到了附近的@ Override-able方法,该方法确保我的bean和上下文已完全初始化:

@Override
protected WebApplicationContext initWebApplicationContext()
{
    WebApplicationContext wac = super.initWebApplicationContext();

    // do stuff with initialized Foo beans via:
    // wac.getBean(Foo.class);

    return result;
}
上一篇:在将许可引入基于Web的系统时,应如何处理多个实例?


下一篇:linux-如何在使用systemd引导期间最后运行并打印我的脚本输出?