Application.yml ortam değişkenlerini destekliyor mu?


111

Application.yml yapılandırmamda env değişkenlerini şu şekilde kullanmayı denedim:

spring:
  main:
    show_banner: false

---

spring:
  profiles: production
server:
  address: $OPENSHIFT_DIY_IP
  port: $OPENSHIFT_DIY_PORT

ancak env değişkenleri çözülmedi. Farklı bir gösterim sağlamam gerekiyor mu?

Rails'te örneğin <% = ENV ['FOOVAR']%> kullanabilirsiniz

Tek alternatif, uygulamayı şu şekilde çalıştırmaktır:

java -jar my.jar --server.address=$OPENSHIFT_DIY_IP --server.port=$OPENSHIFT_DIY_PORT

Yanıtlar:


147

Deneyin ${OPENSHIFT_DIY_PORT}(her zamanki Bahar yer tutucu gösterimi). Dokümanlar için buraya bakın .


Bu tam olarak ihtiyacım olan app.name=MyApp app.description=${app.name} is a Spring Boot application
şeydi

2
Sadece işaret etmek - Eğer KOTLIN kullanıyorsanız, tırnak içinde referans koymak ve kaçmak gerekir $meselaroot: "\${LOGGING_LEVEL_ROOT:info}"
Edward

Arkadaşlar, uygulamayı başlatırken OPENSHIFT_DIY_PORT'u unix cli üzerinden geçmeye nasıl başlayabiliriz? Geçersiz kılma parametrelerini geçirmek için -D kullanabileceğimizi biliyorum, ancak bu env değişkenleri için de işe yarıyor mu? Ör .: nohup java -Xmx1024m -jar -Dspring.profiles.active = "her neyse". Bunu env değişken ile yapmanın bir yolu var mı?
Igor Donin

@IgorDonin, değişken atamaların ve programın birleştirilmesi sizin için bir seçenek çağırır mı? $MY_ENV=value && java -jar ...
Örn

86

Ortam değişkeni sağlanmadıysa, varsayılan değer bile ekleyebilirsiniz:

logging:
  level:
    root: ${LOGGING_LEVEL_ROOT:info}

5
Bu sözdizimini devraldığım bir uygulamada buldum ve bunu gösteren Spring belgelerini bulamadım. Neler olduğu oldukça açık, ancak bunun için dokümanları bulabilmek güzel olurdu. Paylaştığınız için teşekkür ederim - şimdi sonucuma daha çok güveniyorum.
sayın

Yapılandırma UB'sinde varsayılan değerler mi kullanılıyor yoksa açıkça belirtilmesi mümkün mü?
anddero
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.