在Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类不存在,经网络查询发现被WebServerFactoryCustomizer替代,原文链接:https://segmentfault.com/a/1190000014610478 。
下面是自己结合原文根据自己练手的项目做的一些小修改:
在自己的Server配置类里面添加配置嵌入式的Servlet容器的组件EmbeddedServletContainerCustomizer不存在
Spring Boot 1.0中
Spring Boot默认使用Tomcat作为嵌入式的Servlet容器,只要引入了spring-boot-start-web依赖,则默认是用Tomcat作为Servlet容器:
编写EmbeddedServletContainerCustomizer(嵌入式的Servlet容器的定制器)来修改Servlet容器的配置,返回一个自定义的定制器Bean:
@Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){ //定制嵌入式的Servlet容器相关的属性配置 return container -> container.setPort(8083); }
Spring Boot 2.0中
使用WebServerFactoryCustomizer接口替换EmbeddedServletContainerCustomizer组件完成对嵌入式Servlet容器的配置
@Bean public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){ return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() { @Override public void customize(ConfigurableWebServerFactory factory) { factory.setPort(8081); } }; }
在WebServerFactoryCustomizer接口中使用ConfigurableWebServerFactory对象实现对customize()方法的转换,从而实现对嵌入式servlet容器的配置。