小编Myk*_*eul的帖子

配置类中的@RefreshScope

我有一个弹簧启动应用程序。我正在使用 Spring Cloud Config 来外部化属性 - 通过 Git。一切正常。我希望在发出执行器刷新端点时刷新 bean。通过执行以下操作,Bean 会按预期快速刷新:

@EventListener
public void onRefreshScopeRefreshed(final RefreshScopeRefreshedEvent event) {
    logger.info("Received Refresh event. Refreshing all beans...");
    for (String beanName : applicationContext.getBeanDefinitionNames()) {
        Class<?> beanClass = applicationContext.getBean(beanName).getClass();
        if(beanClass.getName().contains("SpringCGLIB")) {
            logger.info("Proxied bean: bean name: " + beanName + " - Bean class: " + applicationContext.getBean(beanName).getClass());
        } else {
            logger.info("Regular Bean: Bean name: " + beanName + " - Bean class: " + applicationContext.getBean(beanName).getClass());
        }
        applicationContext.getBean(beanName).getClass(); // to cause refresh eagerly
    }
}
Run Code Online (Sandbox Code Playgroud)

唯一没有按预期工作的事情是,当我使用 @refreshScope 注释 …

java configuration spring spring-boot spring-cloud-config

9
推荐指数
1
解决办法
1万
查看次数