@ConfigurationProperties注解是从配置文件中加载配置值并且赋值给配置类属性。
例:
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MyConfig {
private String url;
}
minio:
url: http://127.0.0.1:9000
nacos配置中心刷新配置类是通过发布一个refreshEnvent事件,当监听器refreshEventListener监听到事件后执行onApplication方法,又发布了一个EnviromentChangeEnvent,ConfigurationPropertiesRebinder
类监听这个事件,逻辑就是通过beanpostProcess把标注@configurationProperies的类加入到一个map中,用来做刷新判断,之后销毁这个bean,重新初始化这个bean.
@RefreshScope刷新是创建代理类放入缓存,通过变更事件clear缓存