Spring Boot 在tomcat8下启动异常缓慢原因及解决方法

最近学习Spring Boot整合Mybatis+Spring Secrity等框架之后部署到Tomcat8上,结果下图所示:
Spring Boot 在tomcat8下启动异常缓慢原因及解决方法
查看第一二行日日志,总耗时花了520多秒。


原因查资料后得知:

  1. 原因: Tomcat 7及以上的Tomcat在启动时会调用SecureRandom类来生成随机数,如果用于初始化SecureRandom的熵源不够用,就会一直等待,直到获取到足够的熵源(熵源定义百度吧…),蛋疼的是,这个获取熵源,是同步的,阻塞的…没获取到就一要获取,启动的时候就一起挂了…
  2. 解决办法:
    参考了如下两位的博客:
    https://my.oschina.net/woooooody/blog/1818457
    https://www.jianshu.com/p/30aa8e43a396

我用的是修改了JVM环境的参数,果然解决,最后耗时14s左右!!!