Konfigureer direkte en proxy-RestTemplate-bone in Spring
Skep aparte RestTemplate-bone vir 'n HTTP-proxy en 'n eksplisiet direkte JDK-verbinding eerder as om 'n gedeelde roete rondom individuele oproepe te wissel.
Sommige oproepe moet die korporatiewe proxy gebruik, terwyl 'n ander diens direk bereik word. Gee daardie roetes afsonderlike RestTemplate-instanties eerder as om een gedeelde fabriek te verander terwyl versoeke kan oorvleuel.
Binne 'n bestaande Spring-konfigurasieklas:
@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);
}
Vir Spring 6.2 se JDK-versoekfabriek gee Proxy.NO_PROXY 'n eksplisiete direkte verbindingsbeleid. As die fabriek se proxy ongestel gelaat word, word die gewone URLConnection-konfigurasiepad toegelaat, wat 'n JVM-proxy kan kies.
Gebruik @Qualifier by die inspuitpunt om die vereiste boon te kies, byvoorbeeld @Qualifier("directRestTemplate") RestTemplate rest. Om net die twee bone te definieer, kies nie tussen hulle vir 'n dubbelsinnige afhanklikheid nie.
Hierdie voorbeeld kies 'n HTTP-proxy sonder verifikasie. 'n Vervoer wat proxy-verifikasie nodig het, kan afsonderlik met sy ondersteunde geloofsbrieë-verskaffer gebou word terwyl dieselfde boonkeuse-reëling behou word. Vir Spring 6 met Apache HttpClient 5, beperk daardie verskaffer tot die proxy-eindpunt.
Ander onderskeppers of versoekfabrieke wat die toepassing doelbewus installeer, behoort steeds aan hulle eie kliëntkonfigurasie. Hou hulle by die roete wat hulle werklik nodig het.