Browse Source

Shared ReactiveAdapterRegistry in web reactive config

pull/1240/merge
Rossen Stoyanchev 9 years ago
parent
commit
25b95efad9
  1. 18
      spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurationSupport.java

18
spring-web-reactive/src/main/java/org/springframework/web/reactive/config/WebReactiveConfigurationSupport.java

@ -28,6 +28,7 @@ import org.springframework.beans.factory.BeanInitializationException; @@ -28,6 +28,7 @@ import org.springframework.beans.factory.BeanInitializationException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Bean;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.codec.ByteArrayDecoder;
import org.springframework.core.codec.ByteArrayEncoder;
import org.springframework.core.codec.ByteBufferDecoder;
@ -266,6 +267,7 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware @@ -266,6 +267,7 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware
RequestMappingHandlerAdapter adapter = createRequestMappingHandlerAdapter();
adapter.setMessageReaders(getMessageReaders());
adapter.setWebBindingInitializer(getConfigurableWebBindingInitializer());
adapter.setReactiveAdapterRegistry(getReactiveAdapterRegistry());
List<HandlerMethodArgumentResolver> resolvers = new ArrayList<>();
addArgumentResolvers(resolvers);
@ -369,6 +371,13 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware @@ -369,6 +371,13 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware
protected void addFormatters(FormatterRegistry registry) {
}
/**
* Override to plug in a custom {@link ReactiveAdapterRegistry}.
*/
protected ReactiveAdapterRegistry getReactiveAdapterRegistry() {
return new ReactiveAdapterRegistry();
}
/**
* Return a global {@link Validator} instance for example for validating
* {@code @RequestBody} method arguments.
@ -423,12 +432,14 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware @@ -423,12 +432,14 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware
@Bean
public ResponseEntityResultHandler responseEntityResultHandler() {
return new ResponseEntityResultHandler(getMessageWriters(), webReactiveContentTypeResolver());
return new ResponseEntityResultHandler(
getMessageWriters(), webReactiveContentTypeResolver(), getReactiveAdapterRegistry());
}
@Bean
public ResponseBodyResultHandler responseBodyResultHandler() {
return new ResponseBodyResultHandler(getMessageWriters(), webReactiveContentTypeResolver());
return new ResponseBodyResultHandler(
getMessageWriters(), webReactiveContentTypeResolver(), getReactiveAdapterRegistry());
}
/**
@ -493,7 +504,8 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware @@ -493,7 +504,8 @@ public class WebReactiveConfigurationSupport implements ApplicationContextAware
ViewResolverRegistry registry = new ViewResolverRegistry(getApplicationContext());
configureViewResolvers(registry);
List<ViewResolver> resolvers = registry.getViewResolvers();
ViewResolutionResultHandler handler = new ViewResolutionResultHandler(resolvers, webReactiveContentTypeResolver());
ViewResolutionResultHandler handler = new ViewResolutionResultHandler(
resolvers, webReactiveContentTypeResolver(), getReactiveAdapterRegistry());
handler.setDefaultViews(registry.getDefaultViews());
handler.setOrder(registry.getOrder());
return handler;

Loading…
Cancel
Save