springboot默认tomcat作为嵌入式的servlet容器
1. 修改和server有关的配置
server.port=8082 #通用的servlet容器设置 server.xxx #Tomcat的设置 server.tomcat.xxx//org.springframework.boot.autoconfigure.web.ServerProperties@ConfigurationProperties(prefix="server",ignoreUnknownFields=true)publicclassServerProperties{/** * Server HTTP port. */privateInteger port;...privatefinalServlet servlet=newServlet();privatefinalTomcat tomcat=newTomcat();...}2. 注册一个WebServerFactoryCustomizer bean
如果需要以编程方式配置嵌入的servlet容器,可以注册一个实现WebServerFactoryCustomizer接口的SpringBean。WebServerFactoryCustomizer提供对可配置的ServletWebServerFactory的访问,其中包括许多自定义设置器方法。以下示例以编程方式显示如何设置端口:
@ComponentpublicclassCustomizationBeanimplementsWebServerFactoryCustomizer<ConfigurableServletWebServerFactory>{@Overridepublicvoidcustomize(ConfigurableServletWebServerFactory server){server.setPort(9000);}}TomcatServletWebServerFactory、JettyServletWebServerFactory和UndertowServletWebServerFactory是可配置的ServletWebServerFactory的专用变体,分别为Tomcat、Jetty和Undertow提供了额外的自定义设置方法。ctrl+h
切换其他servlet容器:
springboot默认使用tomcat,首先去除tomcat依赖:
再引入其他servlet容器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency>如果前面的自定义技术太有限,您可以自己注册TomcatServletWebServerFactory、JettyServletWebServerFactory或UnderownServletWebServerFactory bean。
@BeanpublicConfigurableServletWebServerFactorywebServerFactory(){TomcatServletWebServerFactory factory=newTomcatServletWebServerFactory();factory.setPort(9000);factory.setSessionTimeout(10,TimeUnit.MINUTES);factory.addErrorPages(newErrorPage(HttpStatus.NOT_FOUND,"/notfound.html"));returnfactory;}在spring boot中会有很多的xxxCustomizer帮助我们进行定制配置