【问题标题】:Spring MVC 3.1 App: AbstractApplicationContext#refresh called multiple times during application startupSpring MVC 3.1 App:在应用程序启动期间多次调用 AbstractApplicationContext#refresh
【发布时间】:2012-09-20 14:36:06
【问题描述】:

我有一个使用 Spring MVC 构建的 REST Web 服务,具有基于注释的配置和一个 web.xml,其中指定使用 org.springframework.web.context.support.AnnotationConfigWebApplicationContext

在日志文件中的应用程序启动期间,我看到某些行 3 次。 (休眠初始化 - SchemaUpdateTableMetadata 等...,然后是 configWebApplicationContext,然后是 EhCacheManagerFactoryBean,然后是 requestMappingHandlerMapping...,按此顺序执行 3 次)。

应用程序启动时没有错误,我可以使用 REST 端点。

我担心的是,我的应用程序是否会因此使用更多内存或导致一些不可预测的行为?任何见解都是有帮助的。

下面是 Spring Insight 捕获的应用启动截图:

【问题讨论】:

  • 好的,我希望现在更清楚了..:)
  • 你有多少个调度 servlet?
  • 原来我有 2 个。一个在 onStartup 方法中的 WebInitializer implements WebApplicationInitializer 中,一个在 声明中的 web.xml 中。

标签: java spring tomcat7 spring-insight


【解决方案1】:

好的,正如我所见,摘录更长的启动时间,它实际上并没有使用更多的内存,所以这很好。

JavaDoc API 中所述,它加载或刷新配置的持久表示。

@gigadotcomment on the question 中指出了很好,我可能有多个调度程序servlet,我有两个,WebInitializer implements WebApplicationInitializer 在 onStartup 方法中,一个在 web.xml 中的声明中。我在 web.xml 中删除了那个,现在我在启动时对#refresh 进行了 2 次调用而不是 3 次,并且内存消耗是相同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 2017-06-16
    • 2015-10-14
    • 2019-08-13
    • 1970-01-01
    • 2019-04-11
    • 2011-01-17
    相关资源
    最近更新 更多