SpringBoot-2-嵌入式容器

发布于 2024-07-19
951

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读
文章摘要

SpringBoot嵌入式容器摘要

支持嵌入式容器

SpringBoot默认使用Apache Tomcat作为嵌入式容器,同时支持其他容器如Eclipse Jetty和RedHat Undertow。用户可以通过修改pom.xml文件更改Tomcat版本,例如将默认的9.0.56版本升级到9.0.58。

修改端口号和Web路径

通过配置文件修改

配置文件可用application.properties或application.yml格式。两者的主要区别在于格式的层次性以及加载顺序。在同时存在时,application.properties的配置会覆盖application.yml。

示例展示了如何通过配置文件设置端口号和Web路径,例如application.yml中设置端口为8899,路径为/springweb。

通过WebServerFactoryCustomizer修改

在SpringBoot2.x中,使用WebServerFactoryCustomizer替代了SpringBoot1.x中的EmbeddedServletContainerCustomizer来修改端口号和Web路径。代码示例展示了如何通过该方法设置端口号和路径。

通过ServletWebServerFactory类优化Tomcat

通过ServletWebServerFactory类可以进一步优化Tomcat配置,例如通过重写postProcessContext方法实现自定义逻辑。SpringBoot2.x的实现方式与1.x类似,但使用了更新的类和方法。

开启HTTPS

SpringBoot支持通过application.yml文件启用HTTPS服务,但无法同时支持HTTP和HTTPS。可以通过代码配置实现HTTP请求自动重定向到HTTPS。例如,通过TomcatServletWebServerFactory和Connector类设置端口和安全约束。

容器变更

SpringBoot允许变更嵌入式容器,例如从Tomcat切换到Jetty。修改pom.xml和配置文件可以实现容器的变更。示例展示了如何将嵌入式容器切换为Jetty并通过代码设置端口号和上下文路径。

运行后,日志显示Jetty已成功启动,并可通过指定的端口和路径访问服务。

springboot葵花宝典