アノテーションインターフェース EnableWebMvc


このアノテーションを @Configuration クラスに追加すると、WebMvcConfigurationSupport から Spring MVC 構成がインポートされます。例:
@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses = MyConfiguration.class)
public class MyConfiguration {
}

インポートされた構成をカスタマイズするには、インターフェース WebMvcConfigurer を実装し、個々のメソッドをオーバーライドします。例:

@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses = MyConfiguration.class)
public class MyConfiguration implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry formatterRegistry) {
        formatterRegistry.addConverter(new MyConverter());
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(new MyHttpMessageConverter());
    }

}

注意 : Spring Web MVC 構成をインポートするための @EnableWebMvc アノテーションを持つことができる @Configuration クラスは 1 つだけです。ただし、提供された構成をカスタマイズするために、WebMvcConfigurer を実装する複数の @Configuration クラスが存在する場合があります。

WebMvcConfigurer が、構成する必要があるより高度な設定を公開していない場合は、@EnableWebMvc アノテーションを削除し、WebMvcConfigurationSupport または DelegatingWebMvcConfiguration から直接拡張することを検討してください。例:

@Configuration
@ComponentScan(basePackageClasses = { MyConfiguration.class })
public class MyConfiguration extends WebMvcConfigurationSupport {

    @Override
    public void addFormatters(FormatterRegistry formatterRegistry) {
        formatterRegistry.addConverter(new MyConverter());
    }

    @Bean
    public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
        // Create or delegate to "super" to create and
        // customize properties of RequestMappingHandlerAdapter
    }
}
導入:
3.1
作成者:
Dave Syer, Rossen Stoyanchev
関連事項: