С учетом клиента конфигурации bootstrap.yml:
spring:
...
cloud:
config:
uri: ${SPRING_CONFIG_URI:http://localhost:9000}
fail-fast: true
Переменная среды SPRING_CONFIG_URI
должна быть установлена во время выполнения. Мы можем обсудить этот запах кода в другой раз, но для этого упражнения этот URI известен только при запуске службы (он связан с выборкой рандомизированных записей SRV).
Существует ли способ Spring для установки/ переопределить некоторые из bootstrap.yaml
параметров?
Вот что я попробовал:
@SpringBootApplication
public class Application {
public static void main( String[] args ) throws Exception
{
String configServerPort = DnsHelper.resolveSrv("configserver.local");
// This doesn't work
System.setProperty("SPRING_CONFIG_URI", configServerPort);
// This doesn't work
// Use reflection to change the in-memory environment variables
// @see https://stackoverflow.com/a/7201825/1938889
setEnv( Map.of( "SPRING_CONFIG_URI", configServerPort ) );
// After the environment variable is set, then start the service
Application.run( Application.class, args );
}
...