Disa thirrje duhet të përdorin proxy-n e korporatës ndërsa një shërbim tjetër arrihet drejtpërdrejt. Jipu atyre rrugëve instanca RestTemplate të veçanta në vend që të ndryshoni një fabrikë të përbashkët ndërsa kërkesat mund të mbivendosen.

Brenda një klase ekzistuese konfigurimi Spring:

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

Për fabrikën e kërkesave JDK të Spring 6.2, Proxy.NO_PROXY ofron një politikë të qartë lidhjeje të drejtpërdrejtë. Lënia e proxy-t të fabrikës pa u vendosur lejon përkundrazi rrugën e zakonshme të konfigurimit URLConnection, e cila mund të zgjedhë një proxy JVM.

Përdorni @Qualifier në pikën e injektimit për të zgjedhur bean-in e nevojshëm, për shembull @Qualifier("directRestTemplate") RestTemplate rest. Vetëm përcaktimi i dy bean-ëve nuk zgjedh midis tyre për një varësi të paqartë.

Ky shembull zgjedh një proxy HTTP pa autentikim. Një transport që kërkon autentikim proxy mund të ndërtohet veçmas me ofruesin e tij të mbështetur të kredencialeve duke mbajtur të njëjtën rregullim të zgjedhjes së bean-ëve. Për Spring 6 me Apache HttpClient 5, kufizoni atë ofrues në pikën fundore të proxy-t.

Ndërhyrës ose fabrika kërkesash të tjera të instaluara qëllimisht nga aplikacioni ende i përkasin konfigurimit të vetë klientit të tij. Mbani ato me rrugën që i nevojiten vërtet.

Artikuj të ngjashëm