我的RestClient假定使用來自多個服務器的服務,每個服務器都有不同的主機名和憑證。我可以在使用來自多個服務器的REST式服務時使用相同的RestTemplate實例
我知道RestTemplate
is thread safe,併爲每個任務創建了一個不同的連接,但是如何使用不同的憑據來完成? 在創建時不是憑證提供給RestTemplate嗎?
我的RestClient假定使用來自多個服務器的服務,每個服務器都有不同的主機名和憑證。我可以在使用來自多個服務器的REST式服務時使用相同的RestTemplate實例
我知道RestTemplate
is thread safe,併爲每個任務創建了一個不同的連接,但是如何使用不同的憑據來完成? 在創建時不是憑證提供給RestTemplate嗎?
您提到憑據,所以我假設您使用RestTemplate
來調用需要驗證的服務。身份驗證通常通過HTTP請求標頭(例如基本HTTP身份驗證)或URL參數處理。
兩個可能性:
RestTemplate
和手動處理認證(當你通過添加標題或URL參數GET
或POST
...)=>應該重用沒問題該RestTemplate與多個服務。ClientHttpRequestFactory
或處理安全性的某些自定義ClientHttpRequestInterceptor
實例化RestTemplate
=>您可能無法共享它們,因爲您可能混合了不同的身份驗證。謝謝。由於某種原因,我發現'RestTemplate'被認爲是一個「重量級」對象,所以我想盡可能少創建,但是在每個'GET' /'POST'上亂搞手動驗證聽起來並不好玩。 我想我會爲每個使用的服務器保留一個'RestTemplate'。 – Nati
它們在邏輯上是相同的服務嗎?只是與不同的主機?或不同的服務? – leeor
兩者。許多服務可以分爲與不同主機相同服務的組。 – Nati
爲什麼要這樣做。這很難配置,很難理解,並且必須編寫一些新的類,......爲什麼每個服務器不使用一個RestTemplate? – Ralph