Annotation Interface EnableWebFlux
@Retention(RUNTIME)
@Target(TYPE)
@Documented
@Import(DelegatingWebFluxConfiguration.class)
public @interface EnableWebFlux
Adding this annotation to an
@Configuration
class imports the Spring
WebFlux configuration from WebFluxConfigurationSupport
that enables
use of annotated controllers and functional endpoints.
For example:
@Configuration @EnableWebFlux @ComponentScan public class MyConfiguration { }
To customize the imported configuration, implement
WebFluxConfigurer
and one or more of its methods:
@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) ); } // ... }
Only one @Configuration
class should have the @EnableWebFlux
annotation in order to import the Spring WebFlux configuration. There can
however be multiple @Configuration
classes that implement
WebFluxConfigurer
that customize the provided configuration.
If WebFluxConfigurer
does not expose some setting that needs to be
configured, consider switching to an advanced mode by removing the
@EnableWebFlux
annotation and extending directly from
WebFluxConfigurationSupport
or DelegatingWebFluxConfiguration
--
the latter allows detecting and delegating to one or more
WebFluxConfigurer
configuration classes.
- Since:
- 5.0
- Author:
- Brian Clozel, Rossen Stoyanchev
- See Also: