Environment Changes

应用会监听EnvironmentChangedEvent事件,并且使用一些标准的方法来反映这些改变(另外,ApplicationListeners可以做为@bean添加到容器中。)键值对集合发生了改变会触发EnvironmentChangedEvent事件,应用会使用这些键值对做以下事件

  1. 在上下文中重新绑定@ConfigurationProperties
  2. 设置log级别

注意默认情况下客户端不会获取环境的变化,通常不建议探测改变(尽管可以使用@Scheduled注解)。如果使用横向扩展的应用,更好的做法是使用广播,把EnvironmentChangedEvent广播到所有的实例上(使用Spring Cloud Bus)。

EnvironmentChangedEvent覆盖了大量的class来刷新use cases,如果改变的环境并且发布了事件(这些apis是公开的,并且是spring核心的一部分)。你可以使用/configprops 服务端对这些改变进行验证。例如:数据源的maxPoolSize在运行时发生了改变(默认的datasource是由@ConfigurationProperties bean创建的),并且动态的增长空间。重新绑定@ConfigurationProperties没有覆盖的其它class的情况,你需要更多的控制,并且需要改变整个ApplicationContext的原子性。使用@RefreshScope来解决这些问题/

results matching ""

    No results matching ""