Spring Boot 配置嵌入式Servlet容器

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)
public class ServerProperties {
	/**
	 * Server HTTP port.
	 */
	private Integer port;
	...
	private final Servlet servlet = new Servlet();

	private final Tomcat tomcat = new Tomcat();
	...
}
2. 注册一个WebServerFactoryCustomizer bean

如果需要以编程方式配置嵌入的servlet容器,可以注册一个实现WebServerFactoryCustomizer接口的SpringBean。WebServerFactoryCustomizer提供对可配置的ServletWebServerFactory的访问,其中包括许多自定义设置器方法。以下示例以编程方式显示如何设置端口:

@Component
public class CustomizationBean implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {

	@Override
	public void customize(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。

@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
	TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
	factory.setPort(9000);
	factory.setSessionTimeout(10, TimeUnit.MINUTES);
	factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/notfound.html"));
	return factory;
}

在spring boot中会有很多的xxxCustomizer帮助我们进行定制配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值