gpt4 book ai didi

java - Spring Boot 2.0 中的 EmbeddedServletContainerCustomizer

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:26:53 28 4
gpt4 key购买 nike

我尝试将我的应用程序从 spring boot 1.5 迁移到 2.0问题是我找不到 EmbeddedServletContainerCustomizer。有什么想法可以通过吗?

@Bean
public EmbeddedServletContainerCustomizer customizer() {
return container -> container.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
}

更新:我在 org.springframework.boot.autoconfigure.web.servlet 包中找到它作为 ServletWebServerFactoryCustomizer。

@Bean
public ServletWebServerFactoryCustomizer customizer() {
return container -> container.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
}

但是有一个错误:无法解析方法

'addErrorPages(org.springframework.boot.web.server.ErrorPage)'

我还必须将新错误页面的导入从 org.springframework.boot.web.servlet 更改为 org.springframework.boot.web.server

最佳答案

我认为您需要 ConfigurableServletWebServerFactory,而不是 ServletWebServerFactoryCustomizer

您可以在下面找到代码片段:

import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;

@Configuration
public class ServerConfig {

@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory();
factory.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
return factory;
}
}

以上代码适用于 Undertow。对于 tomcat,您需要将 UndertowServletWebServerFactory 替换为 TomcatServletWebServerFactory

您需要将以下依赖项添加到您的项目中(如果是 Maven):

<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-servlet</artifactId>
<version>2.0.26.Final</version>
</dependency>

关于java - Spring Boot 2.0 中的 EmbeddedServletContainerCustomizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406779/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com