కొన్ని కాల్‌లు కార్పొరేట్ ప్రాక్సీని ఉపయోగించాలి, మరో సేవ నేరుగా చేరుకోబడుతుంది. అభ్యర్థనలు ఓవర్‌ల్యాప్ కావచ్చు కాబట్టి ఒక భాగస్వామ్య ఫ్యాక్టరీని మార్చే బదులు ఆ మార్గాలకు వేర్వేరు 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 కోసం, ఆ ప్రొవైడర్‌ను ప్రాక్సీ ఎండ్‌పాయింట్‌కు పరిమితం చేయండి.

అప్లికేషన్ ఉద్దేశపూర్వకంగా ఇన్‌స్టాల్ చేసే ఇతర ఇంటర్‌సెప్టర్‌లు లేదా అభ్యర్థన ఫ్యాక్టరీలు ఇప్పటికీ దాని స్వంత క్లయింట్ కాన్ఫిగరేషన్‌కు చెందుతాయి. నిజంగా అవసరమయ్యే మార్గంతో పాటు వాటిని ఉంచండి.

సంబంధిత వ్యాసాలు