我正在维护一个旧的 Spring 项目,它的启动时间很长。该应用程序在 Tomcat 7 下运行并使用 Hibernate 4.3 + PostgreSQL 9.5。 This is在应用程序启动时写入的 IntelliJ IDEA 日志(由于 SO 帖子长度限制而上传到 Pastebin)。请注意从底部数第 3 行和第 2 行之间的时间间隙。那段时间似乎什么也没有发生。我已尝试将所有日志级别设置为 TRACE
但仍然没有看到任何其他要记录的输出。问题是如何减少启动时间?这是我已经尝试过的事情:
- 在主上下文配置文件上设置
default-lazy-init=true
; - 在持久性配置上将
hibernate.hbm2ddl.auto
设置为none
; - 在持久性配置上将
hibernate.temp.use_jdbc_metadata_defaults
设置为false
。
他们都没有产生任何可衡量的结果。我还能尝试什么?至少我怎样才能理解这段时间发生的事情?
最佳答案
我建议您将应用程序的.war
文件复制到webapps
文件夹中,并让tomcat进行部署,这样更快并且节省您的时间。
Tomcat 支持热部署
。 Tomcat 监视部署目录的更改,因此您只需将 .war
文件复制到该目录中,服务器就会取消部署/重新部署
。
您可以使用 ANT
编写脚本来自动执行部署过程。
关于java - 20多分钟就开始Spring应用了。如何减少呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40020176/