Xi sejħiet iridu jużaw il-proxy korporattiv filwaqt li servizz ieħor jintlaħaq direttament. Agħti lil dawk ir-rotot istanzi RestTemplate distinti minflok ma tibdel fabbrika kondiviża waħda waqt li t-talbiet jistgħu jikkoinċidu.

Ġewwa klassi ta' konfigurazzjoni Spring eżistenti:

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

Għall-fabbrika tat-talbiet JDK ta' Spring 6.2, Proxy.NO_PROXY jipprovdi politika espliċita ta' konnessjoni diretta. Jekk il-proxy tal-fabbrika jitħalla mhux issettjat, minflok tiġi permessa t-triq tas-soltu tal-konfigurazzjoni URLConnection, li tista' tagħżel proxy tal-JVM.

Uża @Qualifier fil-punt tal-injezzjoni biex tagħżel il-bean meħtieġ, pereżempju @Qualifier("directRestTemplate") RestTemplate rest. Is-sempliċi definizzjoni taż-żewġ beans ma tagħżilx bejniethom għal dipendenza ambigwa.

Dan l-eżempju jagħżel proxy HTTP mingħajr awtentikazzjoni. Trasport li jeħtieġ awtentikazzjoni tal-proxy jista' jinbena separatament mal-fornitur tal-kredenzjali appoġġjat tiegħu filwaqt li tinżamm l-istess sistema tal-għażla tal-beans. Għal Spring 6 ma' Apache HttpClient 5, illimita dak il-fornitur għall-punt tat-tmiem tal-proxy.

Interceptors jew fabbriki tat-talbiet oħra installati apposta mill-applikazzjoni xorta jappartjenu għall-konfigurazzjoni tal-klijent tagħha stess. Żommhom mar-rotta li tassew teħtiġilhom.

Artikli relatati