साथ कई वस्तुओं बाइंडिंग मैं निम्नलिखित कोड Guice बाइंडिंग का उपयोग कर:Guice: विभिन्न निर्भरता
public class MyApplication {
public static void main(String[] args) {
Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(Foo.class).annotatedWith(Names.named("first")).toInstance(new Foo("firstFoo"));
bind(Foo.class).annotatedWith(Names.named("second")).toInstance(new Foo("secondFoo"));
bind(Bar.class).to(BarImpl.class);
bind(MyApplication.class).asEagerSingleton();
}
});
}
private @Named("first") Bar first;
private @Named("second") Bar second;
static @Value class Foo { String name; }
static interface Bar {}
static class BarImpl implements Bar {
@Inject @Named Foo foo;
}
}
मैं दोनों का नाम Foo
अपने आवेदन में इंजेक्शन रों के लिए एक Bar
वस्तु पाने के लिए कोशिश कर रहा हूँ। असल में, इसे किसी भी तरह @Named
Foo
पर Bar
पर कनेक्ट करना चाहिए। मैंने कस्टम Provider
लिखने के लिए सबकुछ पर @Named
डालने से कई समाधानों का प्रयास किया है। उत्तरार्द्ध काम नहीं करता क्योंकि मेरे पास प्रदाता के अंदर @Named
एनोटेशन के मूल्य तक पहुंच नहीं है। मुझे लगता है कि समाधान bind(Bar.class).to(BarImpl.class);
लाइन में कहीं है, इसे @Named
एनोटेशन के मान को याद रखने के लिए कह रहा है।
मेरा सवाल है, क्या यह संभव है, और यदि हां, तो कैसे?
धन्यवाद, यह आशाजनक लग रहा है। मैं सोमवार को इसे आजमाउंगा। – Jorn
हां, इसने मेरी समस्या हल की। एक बार फिर धन्यवाद! – Jorn
आपका स्वागत है! –