@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE=TYPESE) @DocumentedSE @Import(value=DelegatingWebFluxConfiguration.class) public @interface EnableWebFlux
@Configuration クラスに追加すると、WebFluxConfigurationSupport から Spring WebFlux 構成がインポートされ、アノテーション付きコントローラーと関数エンドポイントの使用が可能になります。例:
@Configuration
@EnableWebFlux
@ComponentScan
public class MyConfiguration {
}
インポートされた構成をカスタマイズするには、WebFluxConfigurer とそのメソッドの 1 つ以上を実装します。
@Configuration
@EnableWebFlux
@ComponentScan
public class MyConfiguration implements WebFluxConfigurer {
@Autowired
private ObjectMapper objectMapper;
@Override
public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
configurer.defaultCodecs().jackson2JsonEncoder(
new Jackson2JsonEncoder(objectMapper)
);
configurer.defaultCodecs().jackson2JsonDecoder(
new Jackson2JsonDecoder(objectMapper)
);
}
// ...
}
Spring WebFlux 構成をインポートするには、@Configuration クラスに @EnableWebFlux アノテーションが必要です。ただし、提供された構成をカスタマイズする WebFluxConfigurer を実装する複数の @Configuration クラスが存在する場合があります。
WebFluxConfigurer で設定が必要な設定が公開されていない場合は、@EnableWebFlux アノテーションを削除し、WebFluxConfigurationSupport または DelegatingWebFluxConfiguration から直接拡張することで拡張モードに切り替えることを検討してください。後者では、1 つ以上の WebFluxConfigurer 構成クラスを検出および委譲できます。
WebFluxConfigurer, WebFluxConfigurationSupport, DelegatingWebFluxConfiguration