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.

Verwante artikels