Spring Boot: Standardwert in application.properties wird nicht verwendet, wenn die Umgebungsvariable in Docker fehltJava

Java-Forum
Anonymous
 Spring Boot: Standardwert in application.properties wird nicht verwendet, wenn die Umgebungsvariable in Docker fehlt

Post by Anonymous »

Ich habe die folgenden Einträge in meinen application.properties:

Code: Select all

host=${HOST:http://host.com}
organization.id=${ORGANIZATION_ID:123}
contenttype.id=${CONTENTTYPE_ID:110}
Und ich injiziere sie so:

Code: Select all

@Configuration
@Getter
@Setter
public class ConfigProperties {

@Value("${host}")
private String host;

@Value("${organization.id}")
private String organizationId;

@Value("${contenttype.id}")
private String contentTypeId;
}
Meine Absicht ist:
  • Wenn eine Umgebungsvariable (z. B. ORGANIZATION_ID) bereitgestellt wird, verwenden Sie sie
  • Wenn nicht angegeben, verwenden Sie den nach dem Doppelpunkt definierten Standardwert
Wenn ich die Anwendung in Docker ausführe, ohne ORGANIZATION_ID in der .env-Datei festzulegen, wird die Anwendung startet nicht mit diesem Fehler:

Verursacht durch: org.springframework.util.PlaceholderResolutionException: Platzhalter „organization.id“ im Wert „${organization.id}“ konnte nicht aufgelöst werden.

Dadurch sieht es so aus, als würde der Standardwert von application.properties ignoriert.
Warum verwendet Spring Boot nicht den Standardwert? Wert aus application.properties, wenn die Umgebungsvariable in Docker fehlt, und wie kann ich dafür sorgen, dass Spring den Standardwert verwendet, wenn die Umgebungsvariable nicht definiert ist?
Ich möchte, dass Spring:
  • den Wert aus der Umgebung verwendet, falls vorhanden
  • andernfalls den Standardwert aus application.properties verwenden
Aber nicht fehlschlagen, wenn die Umgebungsvariable einfach nicht bereitgestellt wird.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post