2010-05-05 11 views
5

के लिए नियंत्रण ढांचे का सरल उलटा जावा/स्कैला में लिखे गए जीयूआई अनुप्रयोगों के लिए IoC कंटेनर का उपयोग करने के लिए एक सरल खोज रहा हूं।जावा/स्कैला

इसे कॉन्फ़िगरेशन, जीवन चक्र प्रबंधन, कोड में कॉन्फ़िगरेशन (अधिमानतः बिना किसी एक्सएमएल के आवश्यक) पर कन्वेंशन का समर्थन करना चाहिए, और जितना संभव हो संकलन समय पर निर्भरता की जांच करना चाहिए। Autofac के समान कुछ सही होगा।

उत्तर

12

लगता है जैसे आपको Google Guice जैसी कुछ चाहिए।

जावा (जैसे PicoContainer) के लिए काफी कुछ आईओसी कंटेनर के लिए वहाँ इस्तेमाल किया, लेकिन वे सभी अब साल के लिए वसंत की छाया में किया गया है। हालांकि, आपकी जरूरतों के लिए वसंत शीर्ष पर थोड़ा सा है।

गुइस ने कुछ स्वस्थ प्रतिस्पर्धा को फिर से शुरू कर दिया है।

http://code.google.com/p/google-guice/

आप या तो किसी भी एक्सएमएल gunk की जरूरत नहीं है तुम बस प्रोग्राम के मॉड्यूल बना सकते हैं और चीजों को एक साथ लिखते हैं कि में, एक इंटरफेस (TransactionLog) बंधन जैसे कर सकते हैं:

+0

विकल्प मैं वर्तमान में देख रहा हूँ है कि हूँ, लेकिन मैं विकल्पों के बारे में जानने की उम्मीद कर रहा हूँ। –

+0

हां, वसंत निश्चित रूप से बहुत भारी है। –

+0

यहां तक ​​कि वसंत 3.0 बस वसंत कोर के साथ, और एनोटेशन-कॉन्फ़िगरेशन का उपयोग कर? गुइस के लिए – Nate

3

गूगल Guice बहुत अच्छी है एक कार्यान्वयन वर्ग (DatabaseTransactionLog):

public class BillingModule extends AbstractModule { 
    @Override 
    protected void configure() { 
    bind(TransactionLog.class).to(DatabaseTransactionLog.class); 
    } 
} 
+0

+ 1, और यहां प्लेक्सस से गुइस-2.0 तक पोर्टिंग पर एक दिलचस्प पठन है http://www.sonatype.com/people/2010/01/from-plexus-to-guice-1-why-guice/ – crowne

+1

Guice गेंदों में सही वसंत kicks – Jon

1

PicoContainer एक बेहद एम्बेड करने योग्य, पूर्ण सेवा, नियंत्रण (आईओसी) कंटेनर के उलट घटकों निर्भरता इंजेक्शन पैटर्न सम्मान के लिए है। परियोजना 2003 में शुरू हुई और कन्स्ट्रक्टर इंजेक्शन ऑटो-वायरिंग का नेतृत्व किया। यह ओपन सोर्स भी है और इसलिए उपयोग करने के लिए स्वतंत्र है। लाइसेंस बीएसडी है और इस प्रकार आप इसे वाणिज्यिक या अन्य ओपन सोर्स सॉफ्टवेयर के साथ सुरक्षित रूप से उपयोग कर सकते हैं।

5

आप शुद्ध स्काला जा रहे हैं, तो आप सिंडी पर एक नज़र ले जा सकते हैं: http://aloiscochard.github.com/sindi

नोट: मैं सिंडी परियोजना लेखक