Spring இல் நேரடி மற்றும் ப்ராக்ஸி RestTemplate பீன்களை உள்ளமைக்கவும்
ஒவ்வொரு அழைப்பையும் சுற்றி பகிரப்பட்ட வழியை மாற்றுவதற்குப் பதிலாக HTTP ப்ராக்ஸி மற்றும் வெளிப்படையான நேரடி JDK இணைப்பிற்கு தனித்தனி RestTemplate பீன்களை உருவாக்குங்கள்.
சில அழைப்புகள் நிறுவன ப்ராக்ஸியைப் பயன்படுத்த வேண்டும், மற்றொரு சேவை நேரடியாக அணுகப்படுகிறது. கோரிக்கைகள் ஒன்றுடன் ஒன்று மேலெழலாம் என்பதால் ஒரு பகிரப்பட்ட தொழிற்சாலையை மாற்றுவதற்குப் பதிலாக அந்த வழிகளுக்கு தனித்தனி 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 ப்ராக்ஸியைத் தேர்ந்தெடுக்கலாம்.
தேவையான பீனைத் தேர்ந்தெடுக்க இன்ஜெக்ஷன் புள்ளியில் @Qualifier பயன்படுத்தவும், எடுத்துக்காட்டாக @Qualifier("directRestTemplate") RestTemplate rest. இரண்டு பீன்களை வரையறுப்பது மட்டும் தெளிவற்ற சார்புக்கு அவற்றுக்கிடையே தேர்வு செய்யாது.
இந்த எடுத்துக்காட்டு அங்கீகாரம் இல்லாத HTTP ப்ராக்ஸியைத் தேர்ந்தெடுக்கிறது. ப்ராக்ஸி அங்கீகாரம் தேவைப்படும் போக்குவரத்தை அதே பீன்-தேர்வு அமைப்பைத் தக்கவைத்து அதன் ஆதரிக்கப்பட்ட சான்றளவு வழங்குநருடன் தனியாக உருவாக்கலாம். Apache HttpClient 5 உடன் Spring 6 க்கு, அந்த வழங்குநரை ப்ராக்ஸி முடிவுப்புள்ளிக்கு வரம்பிடுங்கள்.
பயன்பாடு வேண்டுமென்றே நிறுவும் பிற இடைமறிப்புகள் அல்லது கோரிக்கை தொழிற்சாலைகள் இன்னும் அதன் சொந்த வாடிக்கையாளர் உள்ளமைவுக்கே சொந்தமானவை. அவற்றை உண்மையில் தேவைப்படும் வழியுடன் வைத்திருங்கள்.