diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java index d136e323cc..f545c08911 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/accept/CompositeContentTypeResolverBuilder.java @@ -27,7 +27,55 @@ import org.springframework.util.CollectionUtils; /** - * Builder for {@link CompositeContentTypeResolver}. + * Factory to create a {@link CompositeContentTypeResolver} and configure it with + * one or more {@link ContentTypeResolver} instances with build style methods. + * The following table shows methods, resulting strategy instances, and if in + * use by default: + * + *
| Property Setter | + *Underlying Strategy | + *Default Setting | + *
|---|---|---|
| {@link #favorPathExtension} | + *{@link PathExtensionContentTypeResolver Path Extension resolver} | + *On | + *
| {@link #favorParameter} | + *{@link ParameterContentTypeResolver Parameter resolver} | + *Off | + *
| {@link #ignoreAcceptHeader} | + *{@link HeaderContentTypeResolver Header resolver} | + *On | + *
| {@link #defaultContentType} | + *{@link FixedContentTypeResolver Fixed content resolver} | + *Not set | + *
| {@link #defaultContentTypeResolver} | + *{@link ContentTypeResolver} | + *Not set | + *
The order in which resolvers are configured is fixed. Config methods may only + * turn individual resolvers on or off. If you need a custom order for any + * reason simply instantiate {@code {@link CompositeContentTypeResolver}} directly. + * + *
For the path extension and parameter resolvers you may explicitly add + * {@link #mediaTypes(Map)}. This will be used to resolve path extensions or a + * parameter value such as "json" to a media type such as "application/json". + * + *
The path extension strategy will also use the Java Activation framework
+ * (JAF), if available, to resolve a path extension to a MediaType. You may
+ * {@link #useJaf suppress} the use of JAF.
*
* @author Rossen Stoyanchev
*/
diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java
index d9943b009a..156d420440 100644
--- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java
+++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/condition/ProducesRequestCondition.java
@@ -28,6 +28,7 @@ import org.springframework.http.MediaType;
import org.springframework.web.HttpMediaTypeNotAcceptableException;
import org.springframework.web.accept.ContentNegotiationManager;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.reactive.accept.CompositeContentTypeResolverBuilder;
import org.springframework.web.reactive.accept.ContentTypeResolver;
import org.springframework.web.reactive.accept.HeaderContentTypeResolver;
import org.springframework.web.server.ServerWebExchange;
@@ -96,7 +97,8 @@ public final class ProducesRequestCondition extends AbstractRequestCondition