2012-07-26 34 views
7

मैं वेब के लिए एक बड़ा Red5 जावा एप्लिकेशन लिख रहा हूं। Red5 एक फ्लैश मीडिया सर्वर विकल्प जो जावा आधारित है और वसंत ढांचे के साथ लिखा गया है।पुन: प्रयोज्य मॉड्यूल बनाने

मैं अपने आवेदन के कई संस्करण ऑनलाइन रखना चाहता हूं, प्रत्येक अलग-अलग व्यवहार और विभिन्न वर्ग सक्षम या अक्षम हैं।

मैं अपने कोड को मॉड्यूल आधारित कोड में बदलने का एक तरीका ढूंढ रहा हूं जो मुझे मुख्य एप्लिकेशन से मॉड्यूल/सुविधाओं को हटाने/जोड़ने की अनुमति देगा।

मुझे ओएसजीआई http://www.springsource.org/osgi के बारे में पता है लेकिन यह कहता है कि इसे स्प्रिंगसोर्स डीएम सर्वर की आवश्यकता है और मुझे नहीं पता कि यह लाल 5 में कैसे काम करेगा और यह पूरी तरह से समझने के लिए बहुत जटिल लगता है।

मुझे सामान्य रूप से वसंत ढांचे का अच्छा ज्ञान नहीं है, मैं इसके साथ डीबी से संबंधित काम करता हूं और यही वह है। लाल 5 इसे अधिक व्यापक रूप से उपयोग करता है।

तो क्या कोई इस जानकारी से कोई समझ सकता है? क्या मेरे कोड को मॉड्यूल में विभाजित करने के लिए कुछ किया जा सकता है?

इस मुद्दे के बारे में किसी भी जानकारी की सराहना की जाएगी।

उत्तर

4

इस तरह की स्थिति से निपटने की मेरी पसंदीदा विधि निर्भरता इंजेक्शन (डीआई) है। वसंत में एक डीआई क्षमता है, जिसके लिए एक ट्यूटोरियल find online के लिए आसान है। हालांकि, वसंत की DI बहुत अच्छी नहीं है, क्योंकि कई कारणों से Guice प्रदान किया गया है, जिसे मैं अत्यधिक अनुशंसा करता हूं। (मेरी राय में स्प्रिंग डी के ऊपर गुइस का मुख्य लाभ टाइप सुरक्षा है।)

DI मूल रूप से रनटाइम पर कक्षा कार्यान्वयन को बदलने के लिए एक तंत्र है। कक्षाओं में हार्ड कोड निर्भरताओं की बजाय (कक्षा को अन्य वर्गों को उदाहरण के लिए सीधे बनाकर) आप उन्हें उनके आश्रित वर्गों को उनके रचनाकारों में पास करने के लिए कोड करते हैं। कॉन्फ़िगरेशन के अनुसार डी फ्रेमवर्क रनटाइम पर सही उदाहरणों को पास करेगा। स्प्रिंग कॉन्फ़िगरेशन एनोटेशन या एक्सएमएल फाइल के माध्यम से किया जा सकता है, गुइस com.google.inject.AbstractModule के उप-वर्ग का उपयोग करता है।

तो आप अपने आवेदन के विभिन्न उदाहरणों के लिए विभिन्न कॉन्फ़िगरेशन फ़ाइलों का उपयोग कर सकते हैं, और उन्हें सक्रियण, या वास्तव में एक ही सुविधा के विभिन्न कार्यान्वयन के लिए सुविधाओं के विभिन्न सेट प्रदान कर सकते हैं। यदि आप इस तकनीक का उपयोग करने के लिए एप्लिकेशन सेट अप करते हैं तो केवल एक चीज जो कि उदाहरणों के बीच भिन्न होती है वह एक कॉन्फ़िगरेशन फ़ाइल है।

+0

धन्यवाद। एक शानदार विकल्प की तरह दिखता है। – ufk

संबंधित मुद्दे