跳到主要内容

7. Undertow Server

要使用 Undertow 作为服务器,请添加以下依赖项:

implementation("io.micronaut.servlet:micronaut-http-server-undertow:3.3.5")
警告

GraalVM 本地镜像不支持 Undertow。如果需要本地镜像支持,请使用 JettyTomcat。参阅 UNDERTOW-1408

注意

如果你计划生成一个 WAR 文件,那么依赖应该是 developmentOnly

要自定义 Undertow 服务器,可以使用以下配置属性:

表 1. UndertowConfiguration 配置属性

属性类型描述
micronaut.server.undertow.buffer-sizeint
micronaut.server.undertow.io-threadsint
micronaut.server.undertow.worker-threadsint
micronaut.server.undertow.direct-buffersboolean
micronaut.server.undertow.handlerio.undertow.server.HttpHandler
micronaut.server.undertow.workerorg.xnio.XnioWorker
micronaut.server.undertow.ssl-engine-delegated-task-executorjava.util.concurrent.Executor
micronaut.server.undertow.byte-buffer-poolio.undertow.connector.ByteBufferPool
micronaut.server.undertow.worker-optionsjava.util.Map设置 worker 选项。
micronaut.server.undertow.socket-optionsjava.util.Map设置 socket 选项。
micronaut.server.undertow.server-optionsjava.util.Map设置 server 选项。

或者你也可能注册一个 BeanCreatedEventListener

Undertow Server 定制

import io.micronaut.context.event.BeanCreatedEvent;
import io.micronaut.context.event.BeanCreatedEventListener;
import io.undertow.Undertow;
import jakarta.inject.Singleton;

@Singleton
public class UndertowServerCustomizer implements BeanCreatedEventListener<Undertow.Builder> {
@Override
public Undertow.Builder onCreated(BeanCreatedEvent<Undertow.Builder> event) {
Undertow.Builder undertowBuilder = event.getBean();
// perform customizations...
return undertowBuilder;
}
}

英文链接