throwExceptionIfNoHandlerFound
在Spring 4.0中的DispatcherServlet
中引入。
我试图找出如何在Spring Boot提供的autoconfigured DispatcherServlet
中设置此属性,但没有运气。
有些挖掘表明下面的代码片段应该有效,但事实并非如此。
@Bean
public ServletContextInitializer servletContextInitializer() {
return new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("throwExceptionIfNoHandlerFound", "true");
}
};
}
答案 0 :(得分:3)
使用BeanPostProcessor
,您可以在构建/初始化阶段后修改bean。您可以编写BeanPostProcessor
,只修改DispatcherServlet
。
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
添加到您的配置中即可。
答案 1 :(得分:0)
尝试添加@Bean
类型DispatcherServlet
并直接设置您需要的任何属性。