我試圖找到一種方法來設置全局AutoGrowNestedPaths = false。如何全局設置AutoGrowNestedPaths = false?
我目前使用基於Java的配置方法和WebConfig擴展WebMvcConfigurerAdapter。
我試圖找到一種方法來設置全局AutoGrowNestedPaths = false。如何全局設置AutoGrowNestedPaths = false?
我目前使用基於Java的配置方法和WebConfig擴展WebMvcConfigurerAdapter。
您可以通過從WebMvcConfigurationSupport直接擴展你的網絡配置做到這一點:
@Configuration
public class WebConfiguration extends WebMvcConfigurationSupport {
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
ConfigurableWebBindingInitializer webBindingInitializer = new ConfigurableWebBindingInitializer();
webBindingInitializer.setConversionService(mvcConversionService());
webBindingInitializer.setValidator(mvcValidator());
webBindingInitializer.setAutoGrowNestedPaths(false);
List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<HandlerMethodArgumentResolver>();
addArgumentResolvers(argumentResolvers);
List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<HandlerMethodReturnValueHandler>();
addReturnValueHandlers(returnValueHandlers);
RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter();
adapter.setMessageConverters(getMessageConverters());
adapter.setWebBindingInitializer(webBindingInitializer);
adapter.setCustomArgumentResolvers(argumentResolvers);
adapter.setCustomReturnValueHandlers(returnValueHandlers);
return adapter;
}
}
雖然答案六必居是指着我在正確的方向,示例代碼可以更清潔,避免重新配置的一切。這是我現在使用的代碼:
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
RequestMappingHandlerAdapter bean = super.requestMappingHandlerAdapter();
ConfigurableWebBindingInitializer webBindingInitializer = (ConfigurableWebBindingInitializer) bean.getWebBindingInitializer();
webBindingInitializer.setAutoGrowNestedPaths(false);
return bean;
}
注意,是可憐的Spring的WebMvcConfigurationSupport不能直接配置的WebBindingInitializer。另請參閱https://jira.springsource.org/browse/SPR-8984
SPR-8984固定在3.2 – Janning