package com.unitechs.col.admin.utils;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.ConfigType;
import com.alibaba.nacos.api.exception.NacosException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.yaml.snakeyaml.Yaml;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
@Component
public class NacosUtil {
@Value("${spring.cloud.nacos.config.server-addr:}")
private String serverAddr;
public void get(){
try {
// String serverAddr = serverAddr;
String dataId = "APP.yml";
String group = "PLAT_PUB";
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
String content = configService.getConfig(dataId, group, 5000);
Yaml yaml = new Yaml();
Map<String, Object> data = yaml.load(content);
Map<String, Object> adminData = (Map<String, Object>) data.get("ccf-admin-service");
adminData.put("PUB_DINGDING_AGENTID", "1111111");
String newContent = content;
String yamlStr = yaml.dumpAsMap(data);
boolean isPublishOk = configService.publishConfig(dataId, group, yamlStr, ConfigType.YAML.getType());
System.out.println(content);
} catch (NacosException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.3.RELEASE</version>
<version>2.1.4.RELEASE</version>
</dependency>
package com.unitechs.col.admin.constants;
import com.alibaba.nacos.api.config.ConfigType;
import com.alibaba.nacos.api.config.annotation.NacosConfigurationProperties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
// 将类定义为一个bean的注解,比如 @Component,@Service,@Controller,@Repository
// 或者 @Configuration
@Component
@RefreshScope
public class PushConfigParam {
// @Value("${ccf-admin-service.PUB_DINGDING_AGENTID}")
private String PUB_DINGDING_AGENTID;
private String PUB_FEISHU_APPID;
public String getPUB_DINGDING_AGENTID() {
return PUB_DINGDING_AGENTID;
}
public void setPUB_DINGDING_AGENTID(String PUB_DINGDING_AGENTID) {
this.PUB_DINGDING_AGENTID = PUB_DINGDING_AGENTID;
}
public String getPUB_FEISHU_APPID() {
return PUB_FEISHU_APPID;
}
public void setPUB_FEISHU_APPID(String PUB_FEISHU_APPID) {
this.PUB_FEISHU_APPID = PUB_FEISHU_APPID;
}
}