Java 启动Spring应用程序的时间超过20分钟。如何减少它?

Java 启动Spring应用程序的时间超过20分钟。如何减少它?,java,spring,hibernate,tomcat7,Java,Spring,Hibernate,Tomcat7,我正在维护一个旧的Spring项目,它的启动时间非常长。该应用程序在Tomcat 7下运行,并使用Hibernate 4.3+PostgreSQL 9.5。IntelliJ IDEA的日志,正在应用程序启动时写入(由于帖子长度限制,已上载到Pastebin)。请注意从底部开始的第三行和第二行之间的时间间隔。在这段时间里似乎什么都没有发生。我尝试将所有日志级别设置为跟踪,但仍然没有看到任何其他要记录的输出。问题是如何缩短启动时间?这是我已经尝试过的事情: 在主上下文配置文件上设置default

我正在维护一个旧的Spring项目,它的启动时间非常长。该应用程序在Tomcat 7下运行,并使用Hibernate 4.3+PostgreSQL 9.5。IntelliJ IDEA的日志,正在应用程序启动时写入(由于帖子长度限制,已上载到Pastebin)。请注意从底部开始的第三行和第二行之间的时间间隔。在这段时间里似乎什么都没有发生。我尝试将所有日志级别设置为
跟踪
,但仍然没有看到任何其他要记录的输出。问题是如何缩短启动时间?这是我已经尝试过的事情:

  • 在主上下文配置文件上设置
    default lazy init=true
  • 在持久性配置中将
    hibernate.hbm2ddl.auto
    设置为
    none
  • 在持久性配置中将
    hibernate.temp.use\u jdbc\u metadata\u defaults设置为
    false

其中没有一个产生了任何可衡量的结果。我还能试什么?至少我怎样才能理解在这段时间里发生了什么?

我建议您将应用程序的
.war
文件复制到
webapps
文件夹中,让tomcat进行部署,这样会更快,节省您的时间。
Tomcat支持
热部署
。Tomcat监视部署目录中的更改,因此您可以将
.war
文件复制到该目录中,服务器将
取消部署/重新部署


您可以使用
ANT
编写脚本,以自动化部署过程。

您的应用程序和远程数据库服务器之间可能存在互联网速度问题(防火墙、互联网速度慢)。另外,通过tomcat进程检查CPU和RAM的使用情况。这是一个很好的观点。我将尝试在部署期间监视网络和CPU活动。执行CPU配置文件,或在部署期间进行一些线程转储,或附加调试器并暂停正在运行的线程,然后查看它们在做什么。我认为这种想法在部署时基本上起到了相同的作用。首先尝试一下,让我们看看结果。