2009-12-07 7 views
9

बस सोच रहा है कि आपके grails ऐप में कॉन्फ़िगर कुंजी-मूल्य जोड़े जोड़ते समय 'सर्वोत्तम अभ्यास' क्या है।Grails कॉन्फ़िगरेशन फ़ाइलें: सर्वोत्तम अभ्यास

क्या आपको बस Config.groovy में जोड़ना चाहिए या नई फाइलें बनाना चाहिए।

मैंने एक नई कॉन्फ़िगरेशन फ़ाइल (Company.groovy) बनाने का प्रयास किया लेकिन मेरे ऐप से कॉन्फ़िगर प्रोप तक नहीं पहुंच सका। हालांकि जब मैं Config.groovy में गुणों को कप-पेस्ट करता हूं तो मुझे उनके पास पहुंच है .... यह ठीक काम करता है लेकिन मैं नहीं चाहता कि Config.groovy बहुत बड़ा हो। इसके अलावा एक और समस्या ने अपना सिर उठाया। एकीकरण परीक्षण चलाते समय मैंने पाया कि 'test' env के पास मेरी नई कॉन्फ़िगरेशन गुणों तक पहुंच नहीं है (मान शून्य थे)।

मुझे कुछ मौलिक रूप से गलत करना होगा। किसी भी सलाह की सराहना की जाएगी।

धन्यवाद, डी

+3

यह वास्तव में एक अच्छा सवाल है, तार्किक प्रतिक्रिया और शीर्ष जवाब मुझे अच्छी जानकारी है कि एक सवाल मैं एक जटिल Config.groovy फ़ाइल पुनर्रचना के बारे में था जवाब के साथ प्रदान की जरूरत नहीं है। चूंकि Grails ऐप्स वर्ष तक बड़ा हो जाते हैं, यह प्रश्न अधिक लोगों के लिए अधिक प्रासंगिक है। –

+0

यह एक सहायक है: http://stackoverflow.com/questions/6602620/grails-config-include-another-config-file – osa

+0

यह भी सहायक है: http://stackoverflow.com/questions/13648194/grails- बाह्य-कॉन्फ़िगरेशन-कैंट-एक्सेस-टू-बाहरी-वेरिएबल-हो रही-हमेशा – osa

उत्तर

8

मुझे यकीन है कि विशिष्ट सर्वोत्तम प्रथाओं देखते हैं नहीं कर रहा हूँ। मैं आपको प्लगइन बता सकता हूं कि केवल कुछ विकल्प जोड़ते हैं जो आमतौर पर Config.groovy का पुन: उपयोग करते हैं, लेकिन जिनके लिए अधिक जटिल कॉन्फ़िगरेशन (यानी निंबल) की आवश्यकता होती है, आमतौर पर उनकी अपनी फ़ाइल होती है जिसे अलग किया जा सकता है। तो यह वास्तव में आपकी विशेष आवश्यकताओं और कॉन्फ़िगरेशन की मात्रा पर निर्भर करता है जिसे आप जोड़ना चाहते हैं।

यदि आप Config.groovy की जांच करते हैं, तो आप कुछ शीर्ष पंक्तियों (यहां पुन: उत्पादित) में देखेंगे कि आप निर्दिष्ट कर सकते हैं कि Grails कॉन्फ़िगरेशन फ़ाइलों को कहां देखेंगे। यह स्वचालित रूप से आपके लिए संपत्ति और .groovy फ़ाइलों को मर्ज कर सकता है।

// locations to search for config files that get merged into the main config 
// config files can either be Java properties files or ConfigSlurper scripts 

// grails.config.locations = [ "classpath:${appName}-config.properties", 
//        "classpath:${appName}-config.groovy", 
//        "file:${userHome}/.grails/${appName}-config.properties", 
//        "file:${userHome}/.grails/${appName}-config.groovy"] 

This section in the docs आप के लिए विकल्पों का वर्णन करता।

+0

धन्यवाद जीन! इसके अलावा मुझे सेवाओं के एकीकरण परीक्षणों के लिए मॉकिंग कॉन्फ़िगरेशन पर एक आसान पोस्ट मिली (http://mrhaki.blogspot.com/2009/12/grails-goodness-mocking-configuration.html) – Derek

7

बस ऊपर दिए गए उत्तर को जोड़ने के लिए, अगर आप अपनी फ़ाइल MySampleConfig.groovy (केवल config.groovy के साथ फ़ाइल नाम को समाप्त करते हैं) नाम दें तो इसे grails में जोड़ा जाना चाहिए आवेदन संदर्भ ताकि आप निम्नलिखित का संदर्भ दे सकें:

sample{ 
     first{ 
      name = "Italy" 
     } 
     second{ 
      name = "Spain" 
     } 
} 

रूप

grailsApplication.config.sample["first"].name 
grailsApplication.config.sample["second"].name 

प्लग इन की मैं कुछ अलग ढंग से और ConfigSlurper का उपयोग कर या इसी तरह के व्यवहार करते हैं का मानना ​​है की आवश्यकता होती है (मैं बहुत इस पर सुधार के लिए खुला रहा हूँ)।

def config = new ConfigSlurper().parse(new File('grails-app/conf/MySampleConfig.groovy').toURL()) 
println config.sample['first'].name 
println config.sample['second'].name 
+0

grails आवेदन? ... मुझे – Rafael

+0

@ राफेल के साथ समस्याएं आ रही हैं - 'grails आवेदन' इंजेक्शन के माध्यम से grails कलाकृतियों के लिए उपलब्ध होना चाहिए – tylerwal