在 Spring 启动时在运行时更改值

Change value at Runtime in Spring Boot

我有以下代码。我可以在 运行 时更改 ThreadPoolExecutor 线程数大小吗? 我正在使用 spring 启动。

@Configuration
public class ExecutorConfig
{
 @Value(numberOfThreads)
 private String numberOfThreads ; // numberOfThreads is configured app.properties file
@Bean
 public ThreadPoolExecutor executorConfig()
 
 {
        ThreadPoolExecutor e =  Executors.newFixedThreadPool(numberOfThreads);
        
        return e;
}

}

一个选项是为 属性 numberOfThread 添加一个 set 方法,然后提供一种更新它的方法,例如新端点。但是,如果您的应用重新启动,它仍会从 application.properties.

中获取之前的值

其他选项是使用 Spring Cloud Config,但这对您的情况来说可能会或可能不会过度杀伤。

另外, 更深入地介绍了一些强制重新加载的代码示例。