Iuj alvokoj devas uzi la korporacian prokseon, dum alia servo estas atingata rekte. Donu al tiuj itineraj apartajn RestTemplate-okazojn anstataŭ ŝanĝi unu komunan fabrikon dum petoj povas interkovriĝi.

Ene de ekzistanta Spring-agorda klaso:

@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);
}

Por la JDK-peta fabriko de Spring 6.2, Proxy.NO_PROXY donas eksplicitan rektan konekpolitikon. Lasante la prokseon de la fabriko neagordita, oni anstataŭe permesas la ordinaran URLConnection-agordan vojon, kiu povas elekti JVM-prokseon.

Uzu @Qualifier ĉe la enŝovpunkto por elekti la bezonatan fabon, ekzemple @Qualifier("directRestTemplate") RestTemplate rest. Nur difini la du fabojn ne elektas inter ili por ambigua dependeco.

Ĉi tiu ekzemplo elektas HTTP-prokseon sen aŭtentigo. Transporto bezonanta proksean aŭtentigon povas esti konstruita aparte kun ĝia subtenata akreditila provizanto, konservante la saman fabo-elektan aranĝon. Por Spring 6 kun Apache HttpClient 5, limigu tiun provizanton al la proksea finpunkto.

Aliaj interkaptiloj aŭ petfabrikoj, kiujn la aplikaĵo intence instalas, ankoraŭ apartenas al ĝia propra klienta agordo. Tenu ilin kun la itinero, kiu vere bezonas ilin.

Rilataj artikoloj