【问题标题】:Does stand alone spring boot application run on embedded Tomcat all the time?独立的 Spring Boot 应用程序是否一直在嵌入式 Tomcat 上运行?
【发布时间】:2019-03-13 08:44:46
【问题描述】:

我刚刚进入 Spring Boot 应用程序教程(针对 1.5.8 版)。我创建了一个简单的 hello world 独立应用程序,它启用了日志 (log4j2)。当我执行应用程序时,我得到一个错误端口 8080 已在使用中。我有点困惑,我认为这个应用程序是独立的程序,不需要 Web 容器或应用程序服务器。我认为你可以根据阅读来部署它。

为了避免这个异常,我在阅读了一些关于它的文章后通过提供参数--server.port=8181 使其工作。

我读到 spring boot 已经嵌入了 Tomcat web 容器。我的问题是,“独立的 Spring Boot 应用程序是否会在嵌入式 Tomcat 中运行,除非我另外配置它​​?”

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    这取决于您在依赖项中包含的启动器。包含 spring-boot-starter-web 将导致您看到的默认行为。

    如果您仍然不需要此启动器,您可以选择排除它。

    另一种方法是将您的应用程序标记为不是 Web 应用程序。最简单的方法是在启动应用程序之前直接设置:

    SpringApplication.setWebEnvironment(false)
    

    【讨论】:

    • 您的解释肯定会扩展我对弹簧靴的最低限度的理解。是的,我将 spring-boot-starter-web 作为依赖项。再多问一个问题。如果我希望它作为一个 REST Web 服务运行这个应用程序,那么在嵌入式 Tomcat 上运行它是一种方法,对吧?
    • 当然。它启动了一个功能齐全的tomcat,它是用来使用的:)。您可以使用属性配置很多东西。看看docs.spring.io/spring-boot/docs/current/reference/html/…,搜索tomcat。
    猜你喜欢
    • 2017-05-31
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2017-10-21
    • 2020-04-06
    • 2017-07-04
    • 2015-07-31
    • 1970-01-01
    相关资源
    最近更新 更多