class EtcdRefresher extends AbstractRefresher implements InitializingBean, Ordered, DisposableBean {

    public EtcdRefresher(DtpProperties dtpProperties) {
        super(dtpProperties);
    }

    @Override
    public void afterPropertiesSet() {<FILL_FUNCTION_BODY>}

    public void refresh(final DtpProperties dtpProperties) {
        doRefresh(dtpProperties);
    }

    /**
     * load config.
     * @param etcd {@link DtpProperties.Etcd}
     */
    private Map<Object, Object> loadConfig(final DtpProperties.Etcd etcd) {
        Map<Object, Object> properties = EtcdUtil.getConfigMap(etcd, dtpProperties.getConfigType());
        BinderHelper.bindDtpProperties(properties, dtpProperties);
        return properties;
    }

    @Override
    public int getOrder() {
        return LOWEST_PRECEDENCE;
    }

    @Override
    public void destroy() {
        EtcdUtil.close();
    }

}

        DtpProperties.Etcd etcd = dtpProperties.getEtcd();
        Map<Object, Object> map = loadConfig(etcd);
        if (!map.isEmpty()) {
            EtcdUtil.initWatcher(this, dtpProperties, map);
        }
    
<methods>public void refresh(java.lang.String, org.dromara.dynamictp.common.em.ConfigFileTypeEnum) ,public void setEnvironment(Environment) <variables>protected final non-sealed org.dromara.dynamictp.common.properties.DtpProperties dtpProperties,protected Environment environment