କିଛି କଲ୍ କର୍ପୋରେଟ୍ ପ୍ରକ୍ସି ବ୍ୟବହାର କରିବା ଆବଶ୍ୟକ ଯେତେବେଳେ ଅନ୍ୟ ଏକ ସେବା ସିଧାସଳଖ ପହଞ୍ଚେ। ଅନୁରୋଧଗୁଡ଼ିକ ଓଭରଲ୍ୟାପ୍ ହୋଇପାରେ ତେଣୁ ଏକ ସହଭାଗୀ ଫ୍ୟାକ୍ଟ୍ରି ବଦଳାଇବା ପରିବର୍ତ୍ତେ ସେହି ମାର୍ଗଗୁଡ଼ିକୁ ଅଲଗା 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 ପାଇଁ, ସେହି ପ୍ରଦାନକାରୀକୁ ପ୍ରକ୍ସି ଏଣ୍ଡପଏଣ୍ଟରେ ସୀମିତ ରଖନ୍ତୁ।

ଆପ୍ଲିକେସନ୍ ଉଦ୍ଦେଶ୍ୟପୂର୍ବକ ସ୍ଥାପନ କରୁଥିବା ଅନ୍ୟ ଇଣ୍ଟରସେପ୍ଟର କିମ୍ବା ଅନୁରୋଧ ଫ୍ୟାକ୍ଟ୍ରିଗୁଡ଼ିକ ଏବେ ମଧ୍ୟ ଏହାର ନିଜସ୍ୱ କ୍ଲାଏଣ୍ଟ କନଫିଗରେସନ୍ ଅନ୍ତର୍ଭୁକ୍ତ। ସେଗୁଡ଼ିକୁ ପ୍ରକୃତରେ ଆବଶ୍ୟକ କରୁଥିବା ମାର୍ଗ ସହିତ ରଖନ୍ତୁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ