په Spring کې مستقیم او د پروکسي له لارې RestTemplate beanونه تنظیم کړئ
د هرې غوښتنې شاوخوا شریکه لاره بدلولو پرځای د HTTP پروکسي او صریح مستقیم JDK اړیکې لپاره جلا RestTemplate beanونه جوړ کړئ.
ځینې غوښتنې باید د شرکت پروکسي وکاروي، پداسې حال کې چې بله خدمت مستقیم ترلاسه کېږي. د یوې شریکې فابریکې د بدلولو پرځای، هغو لارو ته جلا 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 پروکسي وټاکي.
اړین bean د ټاکلو لپاره د انجیکشن په نقطه کې @Qualifier وکاروئ، د بېلګې په توګه @Qualifier("directRestTemplate") RestTemplate rest. یوازې د دوو beanونو تعریفول د مبهمې تړاو لپاره د دوی ترمنځ نه ټاکي.
دا بېلګه د بې تصدیق HTTP پروکسي ټاکي. هغه ترانسپورت چې د پروکسي تصدیق ته اړتیا لري کولای شي په جلا توګه د خپل ملاتړ شوي اعتبار وړاندې کوونکي سره جوړ شي او ورته د bean د ټاکلو ترتیب وساتل شي. د Apache HttpClient 5 سره Spring 6 لپاره، هغه وړاندې کوونکی د پروکسي پای نقطې پورې محدود کړئ.
نور انټرسیپټرونه یا د غوښتنې فابریکې چې اپلیکیشن یې په قصد سره نصبوي لا هم د هغې خپل کلاینټ ترتیباتو پورې اړه لري. هغوی د هغې لارې سره وساتئ چې واقعاً ورته اړتیا لري.