SpringCloud 手動創(chuàng)建Feign客戶

2023-11-24 14:28 更新

在某些情況下,可能有必要使用上述方法無法實(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ī)注釋。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號