2014-08-27 13 views
6

मैं स्टैंड-अलोन स्प्रिंग बूट जेपीए एप्लिकेशन कैसे शुरू कर सकता हूं - क्ली के माध्यम से नहीं - डेटा प्राप्त करने के लिए डेटाबेस की पसंद के साथ, उदाहरण के लिए, लोकहोस्ट: 5432/my_db; या 1 9 2.168.1.100:5432/our_db, या example.com:5432/their_db? ,स्प्रिंग बूट जेपीए डाटाबेस चॉइस

spring.datasource.driverClassName=org.postgresql.Driver 
spring.datasource.url=jdbc:postgresql://localhost:5432/my_db 
spring.datasource.username=postgres 
spring.datasource.password=postgres 

spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect 
spring.jpa.generate-ddl=true 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=create 

अग्रिम

+0

पसंद कैसे किया जा रहा है? मानदंड क्या है? – geoand

उत्तर

3

धन्यवाद के बाद से आप शायद उपयोगकर्ता नाम और पासवर्ड को कॉन्फ़िगर करने के रूप में अच्छी तरह की जरूरत है मैं अलग application-mydatasource.properties फ़ाइलों के निर्माण की सिफारिश:

मेरा वर्तमान application.properties फ़ाइल जिसमें में एक का उपयोग करता प्रत्येक डेटा स्रोत विन्यास के लिए। फिर सक्रिय डेटा सेट करने के आधार पर आप उस डेटासोर्स को सक्रिय करेंगे जिसे आप उपयोग करना चाहते हैं।

$ java -jar -Dspring.profiles.active=mydatasource demo-0.0.1-SNAPSHOT.jar 

application-mydatasource.properties फिर अपने application.properties में किसी भी गुण को पार कर जाएगी: आप सक्रिय प्रोफ़ाइल या तो application.properties (spring.profiles.active) में या कमांड लाइन तर्क के माध्यम से सेट कर सकते हैं। मेरा मानना ​​है कि आपको उपलब्ध प्रोफाइल की सूची में spring.profiles= सेट करने की भी आवश्यकता होगी।

Profile specific properties देखें।

+0

मैंने सोचा कि संपत्ति फ़ाइलों को इस प्रारूप में होना चाहिए: 'application- {profile} .properties'। इसके अलावा, 'spring.profiles = '' spring.profiles.active = 'होना चाहिए, सही? –

+1

@EricFrancis, आप गुण फ़ाइल के नाम के बारे में सही हैं। मैंने अपना जवाब सही किया। लेकिन चूंकि मैं सक्रिय प्रोफाइल में कमांड लाइन के रूप में गुजर रहा हूं, इसलिए मुझे spring.profiles.active में सक्रिय प्रोफ़ाइल निर्दिष्ट करने की आवश्यकता नहीं है। – gyoder

+0

"एक वाईएएमएल फ़ाइल वास्तव में --- रेखाओं से अलग दस्तावेजों का एक अनुक्रम है, और प्रत्येक दस्तावेज़ को एक अलग नक्शा में अलग से पार्स किया जाता है। यदि किसी वाईएएमएल दस्तावेज़ में spring.profiles कुंजी होती है, तो प्रोफाइल मान (अल्पविराम से अलग प्रोफाइल की सूची) को स्प्रिंग एनवायरनमेंट में पहुंचाया जाता है। एक्सेप्ट्सप्रोफाइल() और यदि इनमें से कोई भी प्रोफाइल सक्रिय है तो दस्तावेज़ अंतिम विलय (अन्यथा नहीं) में शामिल है। " 'Spring.profiles' संपत्ति केवल YAML फ़ाइल के भीतर मान्य है। – hellectronic

0

@Profile लेबल के अलावा एक और विकल्प है कि आप हर वातावरण में घोषित करने के लिए है कि आप आवेदन को तैनात होगा, आप वसंत बूट में लेबल इस्तेमाल कर सकते हैं:

@ConditionalOnProperty (नाम = "PROPERTYNAME", havingValue = "propertyValue")

और प्रत्येक मामले में आप जिस डेटाबेस को लोड करना चाहते हैं, उसे तय करने के लिए एक संपत्ति घोषित करें!

आशा की जा रही है !!

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