在Servlet 3.0中,应用程序的ServletContainerInitializer实现(如果有)是在应用程序首次开始启动时调用的,之后不久就会调用任何ServletContextListener(如果有),但仍然是因为上下文正在开始初始化。同样,如果您有任何设置了启动时加载的Servlet,则它们的init方法将在Servlet启动时调用,但仍在上下文完成初始化之前调用。
在所有这些情况下,上下文都没有完成初始化。这很好,我理解并同意其中的原因。然而,我正在寻找的是一种在上下文完成初始化并对业务开放后立即通知的方法。这对于上面提到的任何侦听器/初始化器都是不可能的,因为它们是在应用程序侦听请求之前调用的。
有可能做到这一点吗?不一定要严格是Servlet规范提供的方法。可以是Spring Framework或其他执行此任务的库。
发布于 2013-09-20 12:39:04
你可以使用servlet,他们有servlet生命周期事件。
public void observeServletContextInitialized(@Observes @Initialized ServletContext ctx)
{
System.out.println(ctx.getServletContextName() + " initialized");
}https://stackoverflow.com/questions/15481850
复制相似问题