gpt4 book ai didi

spring-boot - 如何配置默认的DispatcherServlet?

转载 作者:行者123 更新时间:2023-12-02 21:24:31 28 4
gpt4 key购买 nike

throwExceptionIfNoHandlerFound 是在 Spring 4.0 的 DispatcherServlet 中引入的。

我试图弄清楚如何在 Spring Boot 提供的自动配置 DispatcherServlet 中设置此属性,但没有成功。

一些挖掘表明下面的代码片段应该有效,但事实并非如此。

@Bean
public ServletContextInitializer servletContextInitializer() {
return new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("throwExceptionIfNoHandlerFound", "true");

}
};
}

最佳答案

使用BeanPostProcessor,您可以在bean 的构造/初始化阶段之后对其进行修改。您可以编写一个仅修改 DispatcherServletBeanPostProcessor


public class DispatcherServletConfigurer implements BeanPostProcessor {

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof DispatcherServlet) {
((DispatcherServlet) bean).setThrowExceptionIfNoHandlerFound(true);
}
return bean;
}

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
}

然后只需将其作为 @Bean 添加到您的配置中即可。

关于spring-boot - 如何配置默认的DispatcherServlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474841/

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