بەزى چاقىرىقلار شىركەت پروكسىيەسىنى ئىشلىتىشى كېرەك، يەنە بىر مۇلازىمەتكە بىۋاسىتە يېتىلىدۇ. تەلەپلەر بىر-بىرىگە قوشۇلۇپ قېلىشى مۇمكىن بولغاچقا، بىر ئورتاق زاۋۇتنى ئۆزگەرتىشنىڭ ئورنىغا بۇ يوللارغا ئايرىم 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 ئۈچۈن، ئۇ تەمىنلىگۈچىنى پروكسىيە ئاخىرقى نۇقتىسى بىلەن چەكلەڭ.

ئەپلىكەيشە ئاتايىن قۇرغان باشقا توسقۇچلار ياكى تەلەپ زاۋۇتلىرى يەنىلا ئۇنىڭ ئۆزىنىڭ خېرىدار سەپلىمىسىگە تەۋە. ئۇلارنى ھەقىقەتەن كېرەك بولىدىغان يول بىلەن بىللە ساقلاڭ.

مۇناسىۋەتلىك ماقالىلەر