【问题标题】:start a Spring boot Application on ubuntu but cost too much time在 ubuntu 上启动 Spring Boot 应用程序但花费太多时间
【发布时间】:2017-09-12 04:43:50
【问题描述】:

当我在 Windows10 上(在 IDE 中)启动我的 Spring Boot 应用程序时,我可以在 Chrome 中键入 url 并立即获得我想要的内容。

但是,当我在 ubuntu 服务器上启动它时,需要 10 分钟甚至半小时才能运行。我觉得没必要,想剪掉。

(但是当我启动它时,我可以看到“在 18.193 秒内启动应用程序(JVM 运行 19.086)”)

当然,几分钟后,它运行良好。

版本是spring boot 1.4.2。

有什么原因吗?

非常感谢!

【问题讨论】:

    标签: java ubuntu tomcat spring-boot


    【解决方案1】:

    根本原因分析:

    组件扫描会减慢启动速度

    1. 它会减慢应用程序的启动时间。这将产生更大的影响 如果您有大型应用程序,或大量集成 需要启动应用才能运行的测试。
    2. 它可能会加载您不想要或不需要的 bean。

    自动配置可以加载超出您的需要

    @SpringBootApplication 注释暗示了@EnableAutoConfiguration 注释。 这会启用自动配置。这可能会加载您不需要的组件,从而减慢应用程序启动速度并增加内存和 CPU 使用率。

    资源链接: Spring Boot Performance


    解决步骤:

    在从命令行启动应用程序时,您可以像指定--debug 一样简单地启用调试日志记录。您也可以在application.properties 中指定debug=true

    此外,您可以在application.properties 中设置日志记录级别,如下所示:

    logging.level.org.springframework.web: DEBUG
    logging.level.org.hibernate: ERROR
    

    如果您检测到不需要的自动配置模块,可以将其禁用。可以在此处找到相关文档:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-disabling-specific-auto-configuration

    资源链接: https://stackoverflow.com/a/35713866/2293534

    【讨论】:

    • 问题不在这里,我可以接受 20 秒来启动它,但是当它已经启动时它的成本太高了,它可以真正在 ubuntu 上运行(但是,在我的 Intellij IDEA 中的 windows 上,它可以在启动时准确运行)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2014-10-28
    • 2015-08-07
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多