diff --git a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java index fe00ab162ad..f49cff63952 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,49 +36,55 @@ import org.springframework.web.context.ServletContextAware; /** * Factory to create a {@code ContentNegotiationManager} and configure it with - * one or more {@link ContentNegotiationStrategy} instances. + * {@link ContentNegotiationStrategy} instances. * - *
As of 5.0 you can set the exact strategies to use via - * {@link #setStrategies(List)}. - * - *
As an alternative you can also rely on the set of defaults described below - * which can be turned on or off or customized through the methods of this - * builder: + *
This factory offers properties that in turn result in configuring the + * underlying strategies. The table below shows the property names, their + * default settings, as well as the strategies that they help to configure: * *
| Property Setter | + *Default Value | *Underlying Strategy | - *Default Setting | + *Enabled Or Not | *||
|---|---|---|---|---|---|---|
| {@link #setFavorPathExtension} | - *{@link PathExtensionContentNegotiationStrategy Path Extension strategy} | - *On | + *{@link #setFavorPathExtension favorPathExtension} | + *true | + *{@link PathExtensionContentNegotiationStrategy} | + *Enabled | *
| {@link #setFavorParameter favorParameter} | - *{@link ParameterContentNegotiationStrategy Parameter strategy} | + *false | + *{@link ParameterContentNegotiationStrategy} | *Off | *||
| {@link #setIgnoreAcceptHeader ignoreAcceptHeader} | - *{@link HeaderContentNegotiationStrategy Header strategy} | - *On | + *false | + *{@link HeaderContentNegotiationStrategy} | + *Enabled | *|
| {@link #setDefaultContentType defaultContentType} | - *{@link FixedContentNegotiationStrategy Fixed content strategy} | - *Not set | + *null | + *{@link FixedContentNegotiationStrategy} | + *Off | *|
| {@link #setDefaultContentTypeStrategy defaultContentTypeStrategy} | + *null | *{@link ContentNegotiationStrategy} | - *Not set | + *Off | *
As of 5.0 you can set the exact strategies to use via + * {@link #setStrategies(List)}. + * + *
Note: if you must use URL-based content type resolution, * the use of a query parameter is simpler and preferable to the use of a path * extension since the latter can cause issues with URI variables, path * parameters, and URI decoding. Consider setting {@link #setFavorPathExtension} diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurer.java index 58b100acaaf..6b0c2522ea5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurer.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,50 +38,53 @@ import org.springframework.web.accept.PathExtensionContentNegotiationStrategy; * Creates a {@code ContentNegotiationManager} and configures it with * one or more {@link ContentNegotiationStrategy} instances. * - *
As of 5.0 you can set the exact strategies to use via - * {@link #strategies(List)}. - * - *
As an alternative you can also rely on the set of defaults described below - * which can be turned on or off or customized through the methods of this - * builder: + *
This factory offers properties that in turn result in configuring the + * underlying strategies. The table below shows the property names, their + * default settings, as well as the strategies that they help to configure: * *
| Configurer Property | + *Property Setter | + *Default Value | *Underlying Strategy | - *Default Setting | + *Enabled Or Not | *
|---|---|---|---|---|---|
| {@link #favorPathExtension} | - *{@link PathExtensionContentNegotiationStrategy Path Extension strategy} | - *On | + *true | + *{@link PathExtensionContentNegotiationStrategy} | + *Enabled | *
| {@link #favorParameter} | - *{@link ParameterContentNegotiationStrategy Parameter strategy} | + *false | + *{@link ParameterContentNegotiationStrategy} | *Off | *|
| {@link #ignoreAcceptHeader} | - *{@link HeaderContentNegotiationStrategy Header strategy} | - *On | + *false | + *{@link HeaderContentNegotiationStrategy} | + *Enabled | *
| {@link #defaultContentType} | - *{@link FixedContentNegotiationStrategy Fixed content strategy} | - *Not set | + *null | + *{@link FixedContentNegotiationStrategy} | + *Off | *
| {@link #defaultContentTypeStrategy} | + *null | *{@link ContentNegotiationStrategy} | - *Not set | + *Off | *
The order in which strategies are configured is fixed. You can only turn - * them on or off. + *
As of 5.0 you can set the exact strategies to use via + * {@link #strategies(List)}. * - * Note: if you must use URL-based content type resolution, + *
Note: if you must use URL-based content type resolution, * the use of a query parameter is simpler and preferable to the use of a path * extension since the latter can cause issues with URI variables, path * parameters, and URI decoding. Consider setting {@link #favorPathExtension}