RefreshScopeRefreshedEvent与EnvironmentChangeEvent之间的区别

时间:2018-05-03 11:53:08

标签: spring-boot spring-cloud spring-cloud-config

根据班级评论

  1. org.springframework.cloud.context.environment.EnvironmentChangeEvent
  2.   

    发布的事件表示{@link Environment}的变化。

    这太笼统了,当我们说环境发生变化时,我不知道所包含的内容。

    1. org.springframework.cloud.context.scope.refresh.RefreshScopeRefreshedEvent
    2.   

      可悲的是,这堂课没有课堂评论。

      我的理解是,RefreshScopeRefreshedEvent处理config-server中属性值的更改,但看起来它不会通过EnvironmentChangeEvent提供此类事件。

      我确实点击/刷新了端点,但它没有使用RefreshScopeRefreshedEvent事件调用我的侦听器类。相反,EnvironmentChangeEvent接到了/ refresh

      的调用

1 个答案:

答案 0 :(得分:0)

环境中发生更改时会触发

EnvironmentChangeEvent 。就Spring Cloud Config而言,这意味着在调用 / env 执行器端点时会触发它。

启动@RefreshScope bean的刷新时会触发

RefreshScopeRefreshedEvent ,例如 / refresh 执行器端点被调用。

您可以通过注册ApplicationListener来实现:

@Configuration
public class ApplicationConfig {

@EventListener(RefreshScopeRefreshedEvent.class)
public void onRefresh(RefreshScopeRefreshedEvent event) {
    // Your code goes here...
  }
}