કેટલાક કૉલ્સ કોર્પોરેટ પ્રોક્સી વાપરવા જ જોઈએ જ્યારે બીજી સેવા સીધી પહોંચાય છે. વિનંતીઓ ઓવરલેપ થઈ શકે ત્યારે એક વહેંચાયેલ ફેક્ટરી બદલવાને બદલે તે માર્ગોને અલગ RestTemplate ઇન્સ્ટન્સ આપો.

હાલના 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);
}

Spring 6.2 ની JDK વિનંતી ફેક્ટરી માટે, Proxy.NO_PROXY સ્પષ્ટ સીધી કનેક્શન નીતિ પૂરી પાડે છે. ફેક્ટરીની પ્રોક્સી સેટ ન કર્યા વિના છોડી દેવાથી તેના બદલે સામાન્ય URLConnection કન્ફિગરેશન માર્ગની મંજૂરી મળે છે, જે JVM પ્રોક્સી પસંદ કરી શકે છે.

જરૂરી બીન પસંદ કરવા માટે ઇન્જેક્શન પોઇન્ટ પર @Qualifier વાપરો, ઉદાહરણ તરીકે @Qualifier("directRestTemplate") RestTemplate rest. ફક્ત બે બીન્સ વ્યાખ્યાયિત કરવાથી અસ્પષ્ટ નિર્ભરતા માટે તેમની વચ્ચે પસંદગી થતી નથી.

આ ઉદાહરણ પ્રમાણીકરણ વગરની HTTP પ્રોક્સી પસંદ કરે છે. પ્રોક્સી પ્રમાણીકરણની જરૂર હોય તેવા ટ્રાન્સપોર્ટને તેના સમર્થિત ક્રેડેન્શિયલ પ્રોવાઇડર સાથે અલગથી બનાવી શકાય છે અને એ જ બીન-પસંદગી ગોઠવણ જાળવી શકાય છે. Apache HttpClient 5 સાથે Spring 6 માટે, તે પ્રોવાઇડરને પ્રોક્સી એન્ડપોઇન્ટ સુધી મર્યાદિત કરો.

એપ્લિકેશન જાણી જોઈને ઇન્સ્ટોલ કરે તેવા અન્ય ઇન્ટરસેપ્ટર્સ કે વિનંતી ફેક્ટરીઓ હજી પણ તેના પોતાના ક્લાઇન્ટ કન્ફિગરેશનનો ભાગ છે. તેમને જે માર્ગને ખરેખર તેમની જરૂર છે તેની સાથે રાખો.

સંબંધિત લેખો