import com.alibaba.cloud.nacos.NacosConfigManager;
import com.alibaba.cloud.nacos.NacosConfigProperties;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.AbstractListener;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class NacosConfig implements InitializingBean {
private static final String DATA_ID = "data-id";
private final NacosConfigManager nacosConfigManager;
@Autowired
public NacosConfig(NacosConfigManager nacosConfigManager) {
this.nacosConfigManager = nacosConfigManager;
}
@Override
public void afterPropertiesSet() throws Exception {
NacosConfigProperties nacosConfigProperties = nacosConfigManager.getNacosConfigProperties();
String group = nacosConfigProperties.getGroup();
int timeout = nacosConfigProperties.getTimeout();
RequiredReportPropertiesListener listener = new RequiredReportPropertiesListener();
ConfigService configService = nacosConfigManager.getConfigService();
String configAndSignListener = configService.getConfigAndSignListener(DATA_ID, group, timeout, listener);
// 首次加载需要手动执行消费配置信息
listener.receiveConfigInfo(configAndSignListener);
}
public static class RequiredReportPropertiesListener extends AbstractListener {
/**
* Receive config info.
*
* @param configInfo config info
*/
@Override
public void receiveConfigInfo(String configInfo) {
log.info("加载配置. \r\n{}", configInfo);
}
}
}
SpringBoot手动加载nacos cloud配置
于 2025-04-14 15:21:15 首次发布