2014-06-13 4 views
5

मैं कुछ हज़ार बीन्स के साथ, और कक्षाओं के बीच एक बड़ा निर्भरता ग्राफ के साथ वास्तव में एक बड़े उद्यम अनुप्रयोग पर काम कर रहा हूं। हम @Autowired फ़ील्ड (कंडक्टर में ऑटोवॉयरिंग) के साथ स्प्रिंग 3 का उपयोग कर रहे हैं।गतिशील रूप से कोड से एप्लिकेशन कॉन्टेक्स्ट बनाएं/निर्भरता प्राप्त करें

मैं नियंत्रकों में से एक के लिए एकीकरण परीक्षण बनाने की कोशिश कर रहा हूं, जिसमें कई निर्भरताएं हैं, जिनमें से प्रत्येक निर्भरता आदि है। यह कक्षाओं की एक XML परिभाषा बनाने के लिए असंभव है जिसे हल करने की आवश्यकता है क्योंकि खराब परियोजना संरचना और निर्भरता ग्राफ का - इसलिए मैं एप्लिकेशन कॉन्टेक्स्ट का निर्माण नहीं कर सकता ...

जो मैं करने की कोशिश कर रहा हूं वह कक्षा में फ़ील्ड को स्कैन करना है, और यदि वे बीन्स (घटक, सेवा, आदि) हैं, कोड से ApplicationContext में उन्हें जोड़ें।

मैं relfection मैं लगता है के साथ एक पुनरावर्ती समारोह में वर्ग 'खेतों से होकर पुनरावृति सकता है, और appcontext को सेम जोड़ने के लिए, लेकिन मैं पता नहीं कैसे है ...

मैं यह कैसे कर सकते हैं? क्या यह व्यवहार्य है?

+0

बीन के आलसी प्रारंभिकरण के साथ अनुप्रयोग संदर्भ बनाने के बारे में कैसे? –

+0

आपका क्या मतलब है? कृपया कुछ विवरण जोड़ें :) – Ezzored

उत्तर

0

जब तक मुझे कुछ याद नहीं आ रहा है, तो आप गलत समस्या को हल करने का प्रयास कर रहे हैं। यदि आपकी मॉड्यूल संरचना उस स्थिति में है, तो संदर्भ को गतिशील रूप से बनाने का प्रयास करने में आपकी सहायता नहीं होगी क्योंकि आखिरकार आप पूरे एप्लिकेशन को बहुत अधिक लोड करने जा रहे हैं।

मैं आपको अपने ऐप के लिए एक सामान्य "निम्न-स्तर" स्टैक बनाने की सलाह दूंगा: कुछ ऐसा जो उचित मॉड्यूल द्वारा उचित और स्पष्ट रूप से पहचाना जाता है। एक बार आपके पास हो जाने के बाद, प्रमुख सुविधाओं के लिए सीमाएं बनाना शुरू करें और केवल उन्हें लोड करने का प्रयास करें।

यदि आप ऐसा नहीं कर सकते हैं, तो भी आप अपने ग्राफ में निर्भरताओं को काटने के लिए मैक्स का उपयोग करके एक परीक्षण अनुप्रयोग संदर्भ लोड कर सकते हैं। किसी भी मामले में, रास्ते में तार करने के लिए खेतों की खोज करना आपको कुछ भी खरीदने वाला नहीं है।

+0

आप बिल्कुल सही हैं। यही वह समाधान है जिसे हमने सुझाव दिया है, और इसे अस्वीकार कर दिया गया है, क्योंकि इसे प्राप्त करने के लिए किए जाने वाले कार्यों की मात्रा ... मोजे का उपयोग करना: हाँ, हमने अभी तक इसका उपयोग किया है, और यह देखने के लिए सिर्फ एक अन्वेषक काम है कि int में "असली कोड" का उपयोग किया जा सकता है या नहीं। परीक्षण या नहीं ... – Ezzored

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