spring boot 使用 undertow 替换tomcat web容器

spring boot 默认使用tomcat web容器

1.需要移除tomcat依赖

  pom.xml 中配置。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2.增加undertow依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-servlet</artifactId>
</dependency>

3.配置undertow启动参数

 
# http 端口设置
http.port=8081
#https 配置
server.ssl.key-store=classpath:2441387_apitest.zhurongkeji.cn.pfx
server.ssl.key-store-password=QSjUBNMA
server.ssl.keyStoreType=PKCS12
#启动http2
server.http2.enabled = true

 

# 是否打开 undertow 日志,默认为 false
server.undertow.accesslog.enabled=false
# 设置访问日志所在目录
server.undertow.accesslog.dir=logs
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程;
server.undertow.threads.io = 16
# 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程,默认值是IO线程数*8;
server.undertow.threads.worker = 256
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理;
server.undertow.buffer-size = 1024
# 是否分配的直接内存(NIO直接分配的堆外内存)
server.undertow.direct-buffers = true

4.配置undertow 

@Configuration
public class SpringBootConfig {
    @Value("${http.port}")
    private Integer httpPort;

    @Bean
    public ServletWebServerFactory servletContainer(){
        UndertowServletWebServerFactory undertow = new UndertowServletWebServerFactory();

        // 设置http请求
        undertow.addBuilderCustomizers(new UndertowBuilderCustomizer() {
            @Override
            public void customize(Undertow.Builder builder) {

                builder.addHttpListener(httpPort ,"0.0.0.0");
            }
        });

            return undertow;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值