如何在Spring Boot应用程序中配置DispatcherServlet?

Abh*_*kar 10 java spring servlets spring-mvc spring-boot

在传统的Spring Web应用程序中,可以覆盖AbstractDispatcherServletInitializer.createDispatcherServlet,调用super.createDispatcherServlet然后在返回的实例上设置以下init参数?

setThreadContextInheritable
setThrowExceptionIfNoHandlerFound
Run Code Online (Sandbox Code Playgroud)

如何在Spring Boot应用程序中实现此目的?

Yog*_*ogi 6

您可以定义自己的配置并实现此目的,如下所示:

@Configuration
public class ServletConfig {

@Bean
public DispatcherServlet dispatcherServlet() {
    DispatcherServlet dispatcherServlet = new DispatcherServlet();
    dispatcherServlet.setThreadContextInheritable(true);
    dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
    return dispatcherServlet;
}

@Bean
public ServletRegistrationBean dispatcherServletRegistration() {

    ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet());
    registration.setLoadOnStartup(0);
    registration.setName(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME);

    return registration;
}
Run Code Online (Sandbox Code Playgroud)

}