Ikkonfigura beans RestTemplate diretti u permezz ta' proxy fi Spring
Oħloq beans RestTemplate distinti għal proxy HTTP u konnessjoni JDK diretta b'mod espliċitu minflok ma tibdel rotta kondiviża madwar sejħiet individwali.
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.