Код: Выделить всё
host=${HOST:http://host.com}
organization.id=${ORGANIZATION_ID:123}
contenttype.id=${CONTENTTYPE_ID:110}
Код: Выделить всё
@Configuration
@Getter
@Setter
public class ConfigProperties {
@Value("${host}")
private String host;
@Value("${organization.id}")
private String organizationId;
@Value("${contenttype.id}")
private String contentTypeId;
}
- Если переменная среды (например, ORGANIZATION_ID) представлена, используйте ее
- Если она не указана, используйте значение по умолчанию, определенное после двоеточия
Когда я запускаю приложение в Docker без установки ORGANIZATION_ID в файле .env, приложение не запускается с такой ошибкой:
Код: Выделить всё
Caused by: org.springframework.util.PlaceholderResolutionException:
Could not resolve placeholder 'organization.id' in value "${organization.id}"
Вопрос
Почему Spring Boot не использует значение по умолчанию из application.properties, когда переменная среды отсутствует внутри Docker, и как я могу заставить Spring использовать значение по умолчанию, если переменная env не определена?
Мне нужен Spring чтобы:
- использовать значение из среды, если оно существует
- в противном случае использовать значение по умолчанию из application.properties
Любая помощь оценил!
Подробнее здесь: https://stackoverflow.com/questions/798 ... ironment-v
Мобильная версия