Spring boot 服务启动和运行时Spring Boot env变量更改

Spring boot 服务启动和运行时Spring Boot env变量更改,spring-boot,environment-variables,Spring Boot,Environment Variables,SpringBootMicroService已启动并运行,所有配置都在环境变量中设置。但一旦服务器启动,服务就不会读取更新的环境变量值。有没有办法做到这一点 我尝试过从带有env变量的microservice开始(其中一个变量是retry.count=3),并且工作正常。但是当我将retry.count更新为5时,我需要重新启动服务器。仅使用环境变量是不可能的。但是您可以创建带有@Value注释的类。在应用程序启动时,它从环境变量加载值。然后可以使用setter方法从代码中更新此值 @Value

SpringBootMicroService已启动并运行,所有配置都在环境变量中设置。但一旦服务器启动,服务就不会读取更新的环境变量值。有没有办法做到这一点


我尝试过从带有env变量的microservice开始(其中一个变量是retry.count=3),并且工作正常。但是当我将retry.count更新为5时,我需要重新启动服务器。

仅使用环境变量是不可能的。但是您可以创建带有
@Value
注释的类。在应用程序启动时,它从环境变量加载值。然后可以使用setter方法从代码中更新此值

@Value(${retry.count})
私有字符串retryCount;

谢谢您的回复。我的意思和你提到的一样。这些值在应用程序开始时读取和设置。有没有办法在服务器启动期间读取更新的值?如果您更新了环境变量(而不是应用程序中的配置类变量),则应在Spring启动时读取更新的值。因此,我知道更新的环境值只有在服务重新启动后才起作用。对吧?对。环境变量在JVM启动期间隐藏。您可以更新配置类字段,但此信息不会传播回来。JVM启动后,不再加载环境变量。