ການເອີ້ນບາງຄັ້ງຕ້ອງໃຊ້ proxy ຂອງອົງກອນ ໃນຂະນະທີ່ບໍລິການອື່ນເຂົ້າເຖິງໂດຍກົງ. ໃຫ້ instance 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 ໃຫ້ນະໂຍບາຍການເຊື່ອມຕໍ່ໂດຍກົງຢ່າງຊັດເຈນ. ການປະ proxy ຂອງໂຮງງານໄວ້ບໍ່ຕັ້ງຄ່າ ຈະອະນຸຍາດເສັ້ນທາງການຕັ້ງຄ່າ URLConnection ປົກກະຕິແທນ ເຊິ່ງອາດເລືອກ proxy ຂອງ JVM.

ໃຊ້ @Qualifier ຢູ່ຈຸດສັກຢາເພື່ອເລືອກ bean ທີ່ຕ້ອງການ ຕົວຢ່າງ @Qualifier("directRestTemplate") RestTemplate rest. ການພຽງແຕ່ກຳນົດ bean ສອງອັນ ບໍ່ໄດ້ເລືອກລະຫວ່າງພວກມັນສຳລັບການຂຶ້ນກັບທີ່ກຳກວມ.

ຕົວຢ່າງນີ້ເລືອກ proxy HTTP ທີ່ບໍ່ມີການພິສູດຢືນຢັນ. ການຂົນສົ່ງທີ່ຕ້ອງການການພິສູດຢືນຢັນ proxy ສາມາດສ້າງແຍກຕ່າງຫາກກັບຜູ້ໃຫ້ຂໍ້ມູນປະຈຳຕົວທີ່ຮອງຮັບ ໂດຍຮັກສາການຈັດການເລືອກ bean ດຽວກັນ. ສຳລັບ Spring 6 ກັບ Apache HttpClient 5, ຈຳກັດຜູ້ໃຫ້ນັ້ນໃຫ້ຢູ່ທີ່ຈຸດສຸດທ້າຍຂອງ proxy.

interceptor ຫຼືໂຮງງານຄຳຮ້ອງອື່ນໆ ທີ່ແອັບຯຕິດຕັ້ງໂດຍເຈດຕະນາ ຍັງເປັນຂອງການຕັ້ງຄ່າລູກຄ້າຂອງຕົວເອງ. ເກັບພວກມັນໄວ້ກັບເສັ້ນທາງທີ່ຕ້ອງການພວກມັນຕົວຈິງ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ