အချို့ခေါ်ဆိုမှုများသည် ကော်ပိုရေးရှင်း ပရောက်ဆီကို အသုံးပြုရမည်ဖြစ်ပြီး အခြားဝန်ဆောင်မှုတစ်ခုကို တိုက်ရိုက်ရောက်ရှိသည်။ တောင်းဆိုမှုများ ထပ်နေနိုင်သောကြောင့် မျှဝေထားသော ဖက်ထရီတစ်ခုကို ပြောင်းလဲခြင်းအစား ထိုလမ်းကြောင်းများအတွက် သီးခြား RestTemplate instance များ ပေးပါ။

ရှိပြီးသား Spring ပြင်ဆင်သတ်မှတ်မှု class အတွင်း:

@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 အတွက် ထိုပံ့ပိုးသူကို ပရောက်ဆီ အဆုံးမှတ်တွင် ကန့်သတ်ပါ။

အပလီကေးရှင်းက ရည်ရွယ်ချက်ရှိရှိ တပ်ဆင်ထားသော အခြား interceptor သို့မဟုတ် တောင်းဆိုမှု ဖက်ထရီများသည် ၎င်း၏ ကိုယ်ပိုင် client ပြင်ဆင်သတ်မှတ်မှုတွင် ပါဝင်ဆဲဖြစ်သည်။ ၎င်းတို့ကို အမှန်တကယ် လိုအပ်သော လမ်းကြောင်းနှင့်အတူ ထားရှိပါ။

ဆက်စပ်ဆောင်းပါးများ