2015-09-03 5 views
8

वसंत प्रलेखन से http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml मुझे लगता है कि बाहरी वाईएएमएल फ़ाइल संभव है।प्रोफाइल के साथ वसंत में बाहरी application.yml निर्दिष्ट करने के लिए

मैं यमल में लोड करने के लिए प्रॉपर्टीप्लेसहोल्डर कॉन्फिग फ़ाइलसिस्टम रिसॉर्ट का उपयोग करने में सक्षम था, लेकिन यह सक्रिय प्रोफ़ाइल का सम्मान नहीं करता था।

मैंने एप्लिकेशन.प्रोपर्टीज के लिए देखा जो आप @PropertySource का उपयोग कर सकते हैं, लेकिन यह दस्तावेज़ों के अनुसार वाईएएमएल के लिए काम नहीं करता है।

तो नीचे पंक्ति प्रश्न: स्प्रिंग 4/वसंत बूट में एक प्रोफ़ाइल जागरूक फैशन में application.yml निर्दिष्ट करें।

ध्यान दें: यह src/मुख्य/संसाधन/में काम करता है application.yml

+0

सिर्फ एक रखने से 'application- [profile] .yml'' application.yml' के बगल में। जैसा कि आप एक ही लिंक पर समझाया गया है। स्प्रिंग बूट स्वचालित रूप से इसे लोड करेगा। –

+0

यह एक मानक गुण फ़ाइल का उपयोग कर कक्षा पथ संसाधन में काम करता है। मेरा लक्ष्य एक बाहरी सहारा यमल (एक फ़ाइल में सभी प्रोफाइल) – redwhite

+0

कृपया अपनी खुद की व्याख्या बनाने के बजाय दस्तावेज़ पढ़ें। यह वाईएएमएल फाइलों के लिए भी काम करता है। इसके आगे यह आपके जार या कॉन्फ़िगर निर्देशिका के समान निर्देशिका में फ़ाइलों के लिए भी काम करता है। तो फिर उस कॉन्फ़िगरेशन सेक्शन को पढ़ें ... यदि आप फ़ाइल निर्दिष्ट करना चाहते हैं तो बस अपना आवेदन '--spring.config.location' के साथ शुरू करें जिसे उस अनुभाग के नीचे थोड़ा और समझाया गया है (http://docs.spring.io/ वसंत-बूट/docs/वर्तमान/संदर्भ/html/बूट-सुविधाओं-बाह्य-config.html # बूट-सुविधाओं-बाह्य-config-आवेदन-संपत्ति-फ़ाइलें)। –

उत्तर

11

आदेश एक बाहरी प्रोफ़ाइल .yml फ़ाइल SPRING_CONFIG_LOCATION और SPRING_PROFILES_ACTIVE प्रणाली चर इस्तेमाल किया जा सकता बारे में पता निर्दिष्ट करने के लिए है।

JAVA_OPTS उदाहरण

-Dspring.profiles.active=dev -Dspring.config.location=file:C:/application.yml 

यह आपको एक YML फ़ाइल के अंदर एकाधिक प्रोफाइल प्रदान करते हैं और वसंत जाने के लिए अनुमति देगा करना सही गुण का मूल्यांकन करने की मेहनत:

spring: 
    profiles: dev 
someprop: devprop 
--- 
spring: 
    profiles: test 
someprop: testprop 
+0

यदि आप कुछप्रॉप जोड़ते हैं: $ {devprop} यह yml फ़ाइल प्लेसहोल्डर के मान को पुनर्प्राप्त करने के लिए कहां जाएगी? – Jesse

+0

@ जेसे यह पुनर्प्राप्त करने के लिए आपके पर्यावरण चर पर जायेगा। – Jesse

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