独立的 Spring 启动应用程序是否一直在嵌入式 Tomcat 上运行?



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

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

我读到弹簧启动嵌入了Tomcat Web容器。我的问题是,"除非我以其他方式配置它,否则独立的 Spring 启动应用程序是否会在嵌入式 Tomcat 中运行?

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

如果您无论如何都不需要此启动器,则可以选择排除它。

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

SpringApplication.setWebEnvironment(false)

最新更新