उदाहरण के लिए, RESTEasy's ResteasyWebTarget क्लास में proxy(Class<T> clazz)
है, जैसे इंजेक्टर के getInstance(Class<T> clazz)
। क्या गुइस को यह बताने का कोई तरीका है कि कुछ वर्गों के निर्माण को कुछ उदाहरणों में सौंपा जाना चाहिए?गुइस इंजेक्टर से दूसरे कारखाने में कुछ कक्षाओं के निर्माण का प्रतिनिधि कैसे बनें?
मेरा लक्ष्य Guice के निम्नलिखित व्यवहार है: जब इंजेक्टर वर्ग एक का एक नया उदाहरण के लिए कहा जाता है, यह दृष्टांत करने की कोशिश; अगर तात्कालिकता असंभव है, तो कक्षा को तुरंत चालू करने के लिए किसी अन्य ऑब्जेक्ट (ई। जी। रीस्टेसी वेबटेक्स्ट इंस्टेंस) से पूछें।
मैं इस तरह एक मॉड्यूल लिखने के लिए करना चाहते हैं:
@Override
protected void configure() {
String apiUrl = "https://api.example.com";
Client client = new ResteasyClientBuilder().build();
target = (ResteasyWebTarget) client.target(apiUrl);
onFailureToInstantiateClass(Matchers.annotatedWith(@Path.class)).delegateTo(target);
}
बजाय
@Override
protected void configure() {
String apiUrl = "https://api.example.com";
Client client = new ResteasyClientBuilder().build();
target = (ResteasyWebTarget) client.target(apiUrl);
bind(Service1.class).toProvider(() -> target.proxy(Service1.class);
bind(Service2.class).toProvider(() -> target.proxy(Service2.class);
bind(Service3.class).toProvider(() -> target.proxy(Service3.class);
}
मैं इंजेक्टर इंटरफ़ेस को लागू करने और एक बच्चे के रूप में इंजेक्टर कि कार्यान्वयन का उपयोग के बारे में सोचा है, लेकिन इंटरफेस में बहुत अधिक तरीके हैं।
I कुछ पैकेज में सभी एनोटेटेड इंटरफेस को समझाते हुए एक विधि लिखते हैं और गुइस को उनके लिए प्रदाता का उपयोग करने के लिए कह रहे हैं, लेकिन यह बैकअप दृष्टिकोण है।
ठीक है, आपका उत्तर शायद यहां एकमात्र सही है। यह अन्यथा आप, यह मिल गया होता है कि के लिए खेद इनाम के लिए बहुत देर हो चुकी,। –