Seadista Springis otsesed ja puhverserveri kaudu käivad RestTemplate-biinad
Loo eraldi RestTemplate-biinad HTTP-puhverserveri ja selgesõnaliselt otsese JDK-ühenduse jaoks, selle asemel et üksikute kõnede ümber jagatud marsruuti vahetada.
Mõned kõned peavad kasutama ettevõtte puhverserverit, samal ajal kui teisele teenusele pääsetakse otse. Anna nendele marsruutidele eraldi RestTemplate-i eksemplarid, selle asemel et muuta üht jagatud tehas, kui päringud võivad kattuda.
Olemasoleva Springi konfiguratsiooniklassi sees:
@Bean("directRestTemplate")
RestTemplate directRestTemplate() {
var factory = new SimpleClientHttpRequestFactory();
factory.setProxy(java.net.Proxy.NO_PROXY);
return new RestTemplate(factory);
}
@Bean("proxyRestTemplate")
RestTemplate proxyRestTemplate() {
var factory = new SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080)));
return new RestTemplate(factory);
}
Spring 6.2 JDK päringutehase puhul annab Proxy.NO_PROXY selgesõnalise otsese ühenduse poliitika. Kui jätta tehase puhverserver seadistamata, lubatakse selle asemel tavaline URLConnectioni konfiguratsioonitee, mis võib valida JVM-i puhverserveri.
Kasuta süstimispunktis @Qualifier, et valida vajalik biin, näiteks @Qualifier("directRestTemplate") RestTemplate rest. Ainuüksi kahe biini defineerimine ei vali mitmetähendusliku sõltuvuse korral nende vahel.
See näide valib autentimiseta HTTP-puhverserveri. Puhverserveri autentimist vajava transpordi saab ehitada eraldi selle toetatud volituste pakkujaga, säilitades sama biini valiku korralduse. Spring 6 jaoks Apache HttpClient 5-ga piira see pakkuja puhverserveri lõpp-punktiga.
Muud interceptorid või päringutehased, mille rakendus teadlikult paigaldab, kuuluvad endiselt selle enda kliendi konfiguratsiooni. Hoia neid marsruudi juures, mis neid tegelikult vajab.