ಕೆಲವು ಕರೆಗಳು ಕಾರ್ಪೊರೇಟ್ ಪ್ರಾಕ್ಸಿ ಬಳಸಬೇಕು, ಇನ್ನೊಂದು ಸೇವೆಯನ್ನು ನೇರವಾಗಿ ತಲುಪಲಾಗುತ್ತದೆ. ವಿನಂತಿಗಳು ಓವರ್‌ಲ್ಯಾಪ್ ಆಗಬಹುದಾದ್ದರಿಂದ ಒಂದು ಹಂಚಿಕೆಯ ಫ್ಯಾಕ್ಟರಿಯನ್ನು ಬದಲಿಸುವ ಬದಲು ಆ ಮಾರ್ಗಗಳಿಗೆ ಪ್ರತ್ಯೇಕ 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 ಗಾಗಿ, ಆ ಪೂರೈಕೆದಾರರನ್ನು ಪ್ರಾಕ್ಸಿ ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗೆ ಸೀಮಿತಗೊಳಿಸಿ.

ಅಪ್ಲಿಕೇಶನ್ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸ್ಥಾಪಿಸುವ ಇತರ ಇಂಟರ್ಸೆಪ್ಟರ್‌ಗಳು ಅಥವಾ ವಿನಂತಿ ಫ್ಯಾಕ್ಟರಿಗಳು ಇನ್ನೂ ಅದರ ಸ್ವಂತ ಕ್ಲೈಂಟ್ ಕಾನ್ಫಿಗರೇಶನ್‌ಗೆ ಸೇರುತ್ತವೆ. ಅವುಗಳಿಗೆ ನಿಜವಾಗಿ ಅಗತ್ಯವಿರುವ ಮಾರ್ಗದೊಂದಿಗೆ ಅವುಗಳನ್ನು ಇರಿಸಿ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು