Skip to content

Commit

Permalink
Flesh out the documentation on RestTemplateBuilder customization
Browse files Browse the repository at this point in the history
  • Loading branch information
wilkinsona committed Nov 1, 2016
1 parent 4919c6f commit be78dc4
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4546,11 +4546,17 @@ configure a `RestTemplate`. For example, to add BASIC auth support you can use

[[boot-features-restclient-customization]]
=== RestTemplate customization
When a `RestTemplateBuilder` builds a `RestTemplate` it can be further customized using
a `RestTemplateCustomizer`. Any `RestTemplateCustomizer` beans will be automatically
added to the auto-configured `RestTemplateBuilder`. Furthermore, a new
`RestTemplateBuilder` with additional customizers can be created by calling
`additionalCustomizers(RestTemplateCustomizer...)`.
There are three main approaches to `RestTemplate` customization, depending on how broadly
to want the customizations to apply.

To make the scope of any customizations as narrow as possible, inject the auto-configured
`RestTemplateBuilder` and then calls its methods as required. Each method call returns a
new `RestTemplateBuilder` instance so the customizations will only affect this use of
the builder.

To make a application-wide, additive customization a `RestTemplateCustomizer` bean can be
used. All such beans are automatically registered with the auto-configured
`RestTemplateBuilder` and will be applied to any templates that are built with it.

Here's an example of a customizer that configures the use of a proxy for all hosts except
`192.168.0.5`:
Expand All @@ -4560,6 +4566,10 @@ Here's an example of a customizer that configures the use of a proxy for all hos
include::{code-examples}/web/client/RestTemplateProxyCustomizationExample.java[tag=customizer]
----

Lastly, the most extreme (and rarely used) option is to create your own
`RestTemplateBuilder` bean. This will switch off the auto-configuration of a
`RestTemplateBuilder` and will prevent any `RestTemplateCustomizer` beans from being used.



[[boot-features-email]]
Expand Down

0 comments on commit be78dc4

Please sign in to comment.