Nokre kall må bruke bedriftsproxyen medan ein annan teneste blir nådd direkte. Gje desse rutene eigne RestTemplate-instansar i staden for å endre ein delt fabrikk medan førespurnadene kan overlappe.

Inne i ein eksisterande Spring-konfigurasjonsklasse:

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

For JDK-førespurnadsfabrikken i Spring 6.2 gir Proxy.NO_PROXY ein eksplisitt direkte tilkoplingspolicy. Let du fabrikkens proxy vere uinnstilt, blir i staden den vanlege URLConnection-konfigurasjonsvegen tillaten, som kan velje ein JVM-proxy.

Bruk @Qualifier på injeksjonspunktet for å velje bøna du treng, til dømes @Qualifier("directRestTemplate") RestTemplate rest. Berre å definere dei to bønene vel ikkje mellom dei ved ein tvitydig avhengigheit.

Dette dømet vel ein HTTP-proxy utan autentisering. Ein transport som treng proxyautentisering kan byggjast separat med sin støtta legitimasjonsleverandør medan same bønevalsopplegg blir halde. For Spring 6 med Apache HttpClient 5, avgrens den leverandøren til endepunktet til proxyen.

Andre interceptors eller førespurnadsfabrikkar som applikasjonen med vilje installerer, høyrer framleis til den eigne klientkonfigurasjonen. Hald dei saman med ruta som faktisk treng dei.

Relaterte artiklar