Spring Boot 修改嵌入式 Servlet 容器配置


       SpringBoot 默认使用的是 内嵌式Tomcat 来作为 Servlet 容器,默认采用打 Jar 包的方式。 使用 Spring Boot 前,项目开发通常都是以打 war 包的方式,将其部署在一个 外置的 Tomcat 容器中,如果需要对 Tomcat 进行相关配置,只需要直接对 conf 目录下的相关文件进行配置即可。 使用 Spring Boot 内嵌式 Tomcat ,该如何配置呢?

Spring Boot 中,修改嵌入式 Servlet 容器的配置,有如下两种方式:

1.全局配置文件中,修改和 server 相关的配置

       这种方式的配置,所有的配置信息都保存在 ServerProperties类中。server 相关哪些属性可以在 yml/properties 文件中配置,请点击链接查看: 请点击我,我是官方文档(官方文档随着 Spring Boot 版本变更,部分配置与本文不同。本文使用 Spring Boot 1.5.x 版本)

//通用的Servlet容器配置
server.port=8088
server.context-path=/demo

//配置tomcat相关容器配置
servlet.tomcat.uri-encoding=UTF-8

哪些属性可以在 yml/properties 文件中配置,其实是有据可依的。这些属性都可以在官方文档中查找到的。

点击查看:请点击我,我是官方文档。

2.编写一个 EmbeddedServletContainerCustomizer类

       EmbeddedServletContainerCustomizer,又称嵌入式 Servlet 容器的定制类,我们也可以通过这种方式来修改 Servlet 容器的配置。切记:在容器启动时,要使用 @Bean 注解的方式,将 Servlet定制类加入到容器中。

@Configuration
public class MyServerConfig {
    /**
     * 配置嵌入式的Servlet容器
     */
    @Bean //使用@Bean注解,将该配置添加到Spring容器中
    public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){

        return new EmbeddedServletContainerCustomizer() {
            //定制嵌入式的Servlet容器相关的规则
            @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
				//设置 Server 端口信息
                container.setPort(8088);
                //设置项目访问路径
				container.setContextPath("/demo");
            }
        };
    }
}

总结:

       以上这两种方式的修改,原理都是一致的。ServerProperties 在底层也是通过EmbeddedServletContainerCustomizer这种方式来实现的。优先级:(编写EmbeddedServletContainerCustomizer 类的 > 全局配置文件中的配置)


博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扛麻袋的少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值