Fixes #1211
This commit is contained in:
@@ -970,6 +970,46 @@ This replaces the `SpringMvcContract` with `feign.Contract.Default` and adds a `
|
|||||||
|
|
||||||
Default configurations can be specified in the `@EnableFeignClients` attribute `defaultConfiguration` in a similar manner as described above. The difference is that this configuration will apply to _all_ feign clients.
|
Default configurations can be specified in the `@EnableFeignClients` attribute `defaultConfiguration` in a similar manner as described above. The difference is that this configuration will apply to _all_ feign clients.
|
||||||
|
|
||||||
|
=== Creating Feign Clients Manually
|
||||||
|
|
||||||
|
In some cases it might be necessary to customize your Feign Clients in a way that is not
|
||||||
|
possible using the methods above. In this case you can create Clients using the
|
||||||
|
https://github.com/OpenFeign/feign/#basics[Feign Builder API]. Below is an example
|
||||||
|
which creates two Feign Clients with the same interface but configures each one with
|
||||||
|
a separate request interceptor.
|
||||||
|
|
||||||
|
[source,java,indent=0]
|
||||||
|
----
|
||||||
|
@Import(FeignClientsConfiguration.class)
|
||||||
|
class FooController {
|
||||||
|
|
||||||
|
private FooClient fooClient;
|
||||||
|
|
||||||
|
private FooClient adminClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public FooController(
|
||||||
|
ResponseEntityDecoder decoder, SpringEncoder encoder, EurekaClient discoveryClient) {
|
||||||
|
InstanceInfo prodSvcInfo = discoveryClient.getNextServerFromEureka("PROD-SVC", false);
|
||||||
|
this.fooClient = Feign.builder()
|
||||||
|
.encoder(encoder)
|
||||||
|
.decoder(decoder)
|
||||||
|
.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
|
||||||
|
.target(FooClient.class, prodSvcInfo.getHomePageUrl());
|
||||||
|
this.adminClient = Feign.builder()
|
||||||
|
.encoder(encoder)
|
||||||
|
.decoder(decoder)
|
||||||
|
.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
|
||||||
|
.target(FooClient.class, prodSvcInfo.getHomePageUrl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
NOTE: In the above example `FeignClientsConfiguration.class` is the default configuration
|
||||||
|
provided by Spring Cloud Netflix.
|
||||||
|
|
||||||
|
NOTE: `prodSvcInfo` is the service the the Clients will be making requests to.
|
||||||
|
|
||||||
[[spring-cloud-feign-hystrix]]
|
[[spring-cloud-feign-hystrix]]
|
||||||
=== Feign Hystrix Support
|
=== Feign Hystrix Support
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user