AutoGrowNestedPaths=false をグローバルに設定する方法を見つけようとしています。
現在、WebMvcConfigurerAdapter を拡張する WebConfig を使用した Java ベースの構成アプローチを使用しています。
AutoGrowNestedPaths=false をグローバルに設定する方法を見つけようとしています。
現在、WebMvcConfigurerAdapter を拡張する WebConfig を使用した Java ベースの構成アプローチを使用しています。
Biju の回答は私を正しい方向に向けていましたが、サンプル コードははるかにクリーンで、すべてを再構成する必要がありません。これは私が今使っているコードです:
@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も参照してください。
これを行うには、 WebMvcConfigurationSupportから Web 構成を直接拡張します。
@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;
}
}