بعض النداءات يجب أن تمر عبر وكيل الشركة بينما تُبلَغ خدمة أخرى مباشرة. امنح هذه المسارات نسخ 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);
}

بالنسبة لمصنع طلبات JDK في Spring 6.2، يوفّر Proxy.NO_PROXY سياسة اتصال مباشر صريحة. أما ترك وكيل المصنع غير مضبوط فيسمح بمسار إعداد URLConnection العادي، الذي قد يختار وكيل JVM.

استخدم @Qualifier عند نقطة الحقن لاختيار الحبة المطلوبة، على سبيل المثال @Qualifier("directRestTemplate") RestTemplate rest. مجرد تعريف الحبتين لا يختار بينهما لاعتماد غامض.

يختار هذا المثال وكيل HTTP غير موثَّق. يمكن بناء نقل يحتاج إلى مصادقة وكيل بشكل منفصل باستخدام مزوّد بيانات الاعتماد المدعوم لديه مع الحفاظ على ترتيب اختيار الحبة نفسه. بالنسبة لـ Spring 6 مع Apache HttpClient 5، قيّد ذلك المزوّد بنقطة نهاية الوكيل.

أي اعتراضات أو مصانع طلبات أخرى يثبّتها التطبيق عمداً تبقى ضمن إعداد العميل الخاص بها. أبقِها مع المسار الذي يحتاجها فعلاً.

مقالات ذات صلة