@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE=TYPESE) @DocumentedSE @Import(value=DelegatingWebMvcConfiguration.class) public @interface EnableWebMvc
@Configuration クラスに追加すると、Spring MVC 構成が WebMvcConfigurationSupport からインポートされます。例:
@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
}
}
WebMvcConfigurer, WebMvcConfigurationSupport, DelegatingWebMvcConfiguration