W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
在某些情況下,可能有必要使用上述方法無法實(shí)現(xiàn)的方式自定義Feign客戶。在這種情況下,您可以使用Feign Builder API創(chuàng)建客戶端 。下面是一個示例,該示例創(chuàng)建兩個具有相同接口的Feign客戶端,但為每個客戶端配置一個單獨(dú)的請求攔截器。
@Import(FeignClientsConfiguration.class) class FooController { private FooClient fooClient; private FooClient adminClient; @Autowired public FooController(Decoder decoder, Encoder encoder, Client client, Contract contract) { this.fooClient = Feign.builder().client(client) .encoder(encoder) .decoder(decoder) .contract(contract) .requestInterceptor(new BasicAuthRequestInterceptor("user", "user")) .target(FooClient.class, "http://PROD-SVC"); this.adminClient = Feign.builder().client(client) .encoder(encoder) .decoder(decoder) .contract(contract) .requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin")) .target(FooClient.class, "http://PROD-SVC"); } }
在上面的示例中,FeignClientsConfiguration.class
是Spring Cloud Netflix提供的默認(rèn)配置。
PROD-SVC
是客戶將向其請求的服務(wù)的名稱。
Feign
Contract
對象定義在接口上有效的注釋和值。自動連線的Contract
bean提供對SpringMVC注釋的支持,而不是默認(rèn)的Feign本機(jī)注釋。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: