Spring Boot应用程序的启动时间较慢

时间:2017-05-05 13:55:35

标签: spring-boot

我正在尝试将Web应用程序从JBoss迁移到Spring Boot,但是由于启动时间很慢,因此存在一些无法解释的问题。 即使是Spring Boot指南中的简单应用程序 - “处理表单提交”(使用Java 1.8打包为胖JAR)也会在3秒内在某些计算机上启动,但在30秒内在其他计算机上启动。对于更大的Web应用程序(使用JSF,Hibernate等打包的WAR),情况会变得更糟 - 启动时间为13秒vs 1500秒(115倍以上!)。 类似的应用程序在JBoss或Liberty app服务器下启动,无处不在。 不确定这是安全设置,网络,防火墙还是防病毒工具。

查看日志文件,似乎应用程序花费大量时间扫描JAR以获取TLD文件和“反射”扫描。 奇怪,但对于在JBoss或Liberty中运行的应用程序来说这不是问题 - 不确定是否会发生相同的扫描。

据我了解,这是根据Servlet规范完成的,但有没有办法跳过扫描一些JAR? 在Spring Boot应用程序中添加catalina.properties文件的位置,打包为WAR,如消息所示?

以下是日志消息的示例:

org.apache.jasper.servlet.TldScanner : No TLD files were found in [jar:file:/C:/Development/workspace-Cloud/PrimeFacesDemoSBwar/target/primefacesdemoSB.war!/WEB-INF/lib/primefaces-5.3.jar]. Consider adding the JAR to the tomcat.util.scan.StandardJarScanFilter.jarsToSkip property in CATALINA_BASE/conf/catalina.properties file.

...

org.reflections.Reflections : Reflections took 79406 ms to scan 7 urls, producing 972 keys and 4573 values 

0 个答案:

没有答案