កំណត់រចនាសម្ព័ន្ធ bean RestTemplate ផ្ទាល់ និងតាមរយៈប្រូកស៊ីក្នុង Spring
បង្កើត bean RestTemplate ដាច់ដោយឡែកសម្រាប់ប្រូកស៊ី HTTP និងការតភ្ជាប់ JDK ដោយផ្ទាល់ ជំនួសឱ្យការប្តូរផ្លូវរួមនៅជុំវិញការហៅនីមួយៗ។
ការហៅមួយចំនួនត្រូវតែប្រើប្រូកស៊ីសាជីវកម្ម ខណៈសេវាមួយផ្សេងទៀតត្រូវបានទៅដល់ដោយផ្ទាល់។ ផ្តល់ឱ្យផ្លូវទាំងនោះនូវវត្ថុ 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 នៅចំណុចចាក់បញ្ចូល ដើម្បីជ្រើសរើស bean ដែលត្រូវការ ឧទាហរណ៍ @Qualifier("directRestTemplate") RestTemplate rest។ ការកំណត់ bean ទាំងពីរតែម្នាក់ឯងមិនជ្រើសរើសរវាងពួកវាសម្រាប់ការពឹងផ្អែកមិនច្បាស់លាស់ទេ។
ឧទាហរណ៍នេះជ្រើសរើសប្រូកស៊ី HTTP ដែលគ្មានការផ្ទៀងផ្ទាត់។ ការដឹកជញ្ជូនដែលត្រូវការការផ្ទៀងផ្ទាត់ប្រូកស៊ីអាចសាងសង់ដោយឡែកជាមួយអ្នកផ្តល់ព័ត៌មានសម្គាល់ដែលគាំទ្រ ខណៈរក្សាការរៀបចំជ្រើសរើស bean ដូចគ្នា។ សម្រាប់ Spring 6 ជាមួយ Apache HttpClient 5, ដាក់កំណត់អ្នកផ្តល់នោះចំពោះចំណុចបញ្ចប់ប្រូកស៊ី។
អ្នករារាំង ឬរោងចក្រសំណើផ្សេងទៀត ដែលកម្មវិធីដំឡើងដោយចេតនា នៅតែជាកម្មសិទ្ធិរបស់ការកំណត់រចនាសម្ព័ន្ធអតិថិជនរបស់វា។ រក្សាពួកវាជាមួយផ្លូវដែលពិតជាត្រូវការពួកវា។