1

AutoGrowNestedPaths=false をグローバルに設定する方法を見つけようとしています。

現在、WebMvcConfigurerAdapter を拡張する WebConfig を使用した Java ベースの構成アプローチを使用しています。

4

2 に答える 2

1

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も参照してください。

于 2012-09-22T20:11:44.227 に答える
0

これを行うには、 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;
    }
 }
于 2012-09-21T22:18:17.033 に答える