2014-11-11 34 views
5

Bahar önyükleme uygulamasına bir dış özellikler dosyası yüklemeye çalışıyorum. başlangıçta config sınıfında @PropertySource kullanıyorum. fakat şimdi bu notu kaldırmak istiyorum, böylece sınıf yere bağlı değil.bahar önyükleme dış yapılandırması

java -jar my-boot-ws.war --SPRING_CONFIG_NAME=file:///Users/TMP/resources/ 

bu http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html belgelere dayalı ama aşağıdaki hatayı alıyorum: yüzden kullanmaya çalıştı açıklama çalışıyor kullanarak

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 

ama gerçekten uzaklaşmak istiyoruz.

: Bu konuda herhangi bir yardım harika

Teşekkür

****** ******* DÜZELTME

Yukarıdaki komut olması gerekiyordu

Maalesef kopyala yapıştır hata olur

java -jar my-boot-ws.war --spring.config.location=file:///Users/TMP/resources/ 

Yapılandırma dosyasının adını değiştirmeye çalışmıyorum, sadece ek bir konum ekleyin. gibi burada açıkladı:

If spring.config.location contains directories (as opposed to files) they should end in/(and will be appended with the names generated from spring.config.name before being loaded).

ben dosya $ {spring.application.name} .properties komut satırından geçirilen --spring.config.location yüklenebilir söyleyerek olarak yorumladı

komut satırında

cevap

15

Biraz daha googeling sonra

java -jar my-boot-ws.war --spring.config.location=file:///Users/TMP/resources/myFile.properties 

Ben --spring.config.location belirtilen dizindeki diğer özellikler dosyaları yüklemek olacağını izlenim oldu: Bu Spring Boot and multiple external configuration files aşağıdaki doğru kullanımı olduğunu belirten bulundu. bahsettiğim linke göre bu durum böyle değil. dizin belirtilirse bağlantıya dayalı olarak, bu, application.properties'in aranacağı yerdir. ancak yine burada http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html dokümantasyonunun, bahar önyükleme uygulamasının önce sınıf yoluna bakacağını ve eğer mevcutsa bu ada göre ek özellik dosyaları almak için uygulama adını yakalayacağını ima ettiği görülmektedir.Ben Belirtilen kez

ancak bir dosya adı her şey iyi çalıştı bu yüzden ben yanıldım galiba.

+0

Merhaba, çeşitli özellik dosyaları klasör ve alt klasör altında bulunan aynı durumla karşı karşıya. Tüm bu özellikler dosyasını bu klasörlerden nasıl alacağımı/yükleyeceğimi bilmiyorum. Tüm dosya dosyalarının yüklenmesini sağlamak için yalnızca klasör yollarından nasıl bahsedebilirim. – Sanjeev

6

ek bir önyükleme yapılandırma dosyasını söz mülkiyet altında kullanmalıdır:

--spring.config.location="file:/path/to/application.properties" 

alternatif olacaktır:

-Dspring.config.location="file:/path/to/application.properties" 

Karakterlerin küçük harf olduğunu ve sözcük ayırıcısının dönemini ifade ettiğini unutmayın..

Aksi takdirde anahtarla bir ortam değişkeni kullanabilirsiniz Zaten kullandı: Windows işletim yılında

export SPRING_CONFIG_NAME=file:/path/to/application.properties 
  • :

    set SPRING_CONFIG_NAME=file:/path/to/application.properties 
    
  • * nix sisteminde

    +0

    Yukarıdaki ifademi düzelttim, isim değiştirmek istediğim şey değil. Bir yer eklemek istedim. – peekay

    +0

    Yanlış bir sistem özellik adı kullandığından, soruyu yanlış yönlendiriyordunuz. Cevabımı yeniden kontrol edin ve size uygun görüyorsanız, lütfen kabul edin ya da onu kabul edin :) – tmarwen

    +0

    cevabınız teknik olarak doğru ve bir oylamaya layıktır, ancak istenen soruya cevap vermez. Kopyala/yapıştır hatalarının yanıltıcı olması için özür dilerim. – peekay

    3

    Sık karşılaşılan bir sorun olmayabilir ama ben buna karşı çıktım. Ayrıca, --spring.config.name ile değiştirdiğinizde (hassas bilgiler nedeniyle gitignore'dayken) sınıf yolunuzda bir application.properties olmalıdır.

    +0

    3 saatimi bu saçmalık için harcadığımı inanamıyorum. yıllardır bu tür saçma şey görmedim. teşekkür ederim. – jit

    İlgili konular