首页 > 解决方案 > 刷新后如何向 RefreshScope 注册 RestController

问题描述

我们在 Spring Boot/MVC 应用程序中使用 Spring Cloud Config。

最近我们尝试了一些棘手的事情,比如下面的代码......

@RestController
@RefreshScope
@ConditionalOnProperty("useCase1.enabled")
public class UseCase1Controller {     
   @RequestMapping(path = "/v1/doSomething")
   public String doSomething() {
   }
}

在'spring-cloud-config'下我有以下'app1.yml'......

useCase1.enabled=true

现在有了这个配置,一切都很好并且运行良好,现在如果我更改“Spring Cloud Config Server/app1.yml”的属性并在“Config Server”和“App1 - Boot application”触发“actuator/refresh”到“useCase1” .enabled=false' UseCase1Controller 已禁用...

问题是如果我使用'useCase1.enabled = false'启动应用程序然后更改为true并刷新,我猜想RestController没有注册(我猜注释扫描发生在应用程序上下文的开头,而不是稍后初始化的bean )...

所以我的问题是如何/我可以在刷新后注册我的 RestController 吗?

谢谢回答...

标签: spring-bootspring-mvcspring-cloud-config

解决方案


推荐阅读