https://gitee.com/giteeforsyf/spring-cloud-formatter
选择下载:Nacos-easy

https://nacos.io/zh-cn/docs/v2/guide/user/sdk.html



这里仅需要一个简单的SpringBoot工程即可,如果您下载了对应的资源,那么仅需要查看资源内部README文档进行对应修改即可,下面我们将从0构建Nacos-easy

com.alibaba.nacos nacos-client 2.1.0
4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.6 cn.fly Nacos-easy 0.0.1-SNAPSHOT Nacos-easy Demo project for Spring Boot 11 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-web com.alibaba.nacos nacos-client 2.1.0 org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok

其中:
server:port: 8889nacos:conf:# 配置Nacos的地址serverAddr: 192.168.31.149:8848# 配置 ID,采用类似 package.class(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性,# class 部分建议是配置的业务含义。全部字符小写。只允许英文字符和 4 种特殊字符("."、":"、"-"、"_"),不超过 256 字节dataId: test01# 配置分组,建议填写产品名:模块名(Nacos:Test)保证唯一性,默认:DEFAULT_GROUP# 只允许英文字符和4种特殊字符("."、":"、"-"、"_"),不超过128字节。group: DEFAULT_GROUP# 读取配置超时时间,单位 ms,推荐值 3000。timeout: 3000
package cn.fly.nacoseasy.properties;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;/*** @author Syf200208161018* @date 2022/12/18 15:56* @ClassName:NacosBasedProperties* @Effect:NacosBasedProperties is used for 获取yaml中的配置参数*/
@ConfigurationProperties("nacos.conf")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NacosBasedProperties {private String serverAddr;private String dataId;private String group;private Long timeout;
}
package cn.fly.nacoseasy.utils;import lombok.extern.slf4j.Slf4j;import java.util.ArrayList;
import java.util.Map;/*** @author Syf200208161018* @date 2022/12/18 16:04* @ClassName:LoggerUtil* @Effect:LoggerUtil is used for*/
@Slf4j
public class LoggerUtil {/*** 格式化日志打印,建议将logMap的第一个键值对设置为主题*/public static void formatLog(Map logMap) {final ArrayList keys = new ArrayList<>();final ArrayList values = new ArrayList<>();//遍历logMap.forEach((x, y) -> {keys.add(x);values.add(y);});int len = keys.size();if (len == 0) {log.warn("请设置日志打印内容");} else if (len == 1) {log.info("{}:{}", keys.get(0), values.get(0));} else {log.info("=============" + keys.get(0) + ":" + values.get(0) + "================");for (int flag = 1; flag < len; flag++) {log.info("{}:{}", keys.get(flag), values.get(flag));}log.info("=============" + keys.get(0) + ":" + values.get(0) + "================");}}
}
package cn.fly.nacoseasy.service;import com.alibaba.nacos.api.exception.NacosException;/*** @author Syf200208161018* @date 2022/12/18 15:48* @ClassName:NacosService* @Effect:NacosService is used for*/
public interface NacosBasedService {/*** 拉群Nacos中的配置*/void getConfigurationFromNacos() throws NacosException;
}
package cn.fly.nacoseasy.service.impl;import cn.fly.nacoseasy.properties.NacosBasedProperties;
import cn.fly.nacoseasy.service.NacosBasedService;
import cn.fly.nacoseasy.utils.LoggerUtil;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Service;import java.util.HashMap;
import java.util.Properties;/*** @author Syf200208161018* @date 2022/12/18 15:48* @ClassName:NacosBasedServiceImpl* @Effect:NacosBasedServiceImpl is used for 各类Nacos基础服务*/
@Service
@EnableConfigurationProperties(NacosBasedProperties.class)
public class NacosBasedServiceImpl implements NacosBasedService {@Autowiredprivate NacosBasedProperties basedProperties;@Overridepublic void getConfigurationFromNacos() throws NacosException {final HashMap data = new HashMap<>();Properties properties = new Properties();properties.put("serverAddr", basedProperties.getServerAddr());ConfigService configService = NacosFactory.createConfigService(properties);String content = configService.getConfig(basedProperties.getDataId(), basedProperties.getGroup(), basedProperties.getTimeout());data.put("Nacos配置", "");data.put("配置内容", content);LoggerUtil.formatLog(data);}
}
package cn.fly.nacoseasy.service;import org.springframework.boot.CommandLineRunner;/*** @author Syf200208161018* @date 2022/12/18 15:44* @ClassName:AutoService* @Effect:AutoService is used for*/
public interface AutoService extends CommandLineRunner {
}
package cn.fly.nacoseasy.service.impl;import cn.fly.nacoseasy.service.AutoService;
import cn.fly.nacoseasy.service.NacosBasedService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;/*** @author Syf200208161018* @date 2022/12/18 15:44* @ClassName:AutoServiceImpl* @Effect:AutoServiceImpl is used for*/
@Service
@Order(1)
public class AutoServiceImpl implements AutoService {@Autowiredprivate NacosBasedService basedService;@Overridepublic void run(String... args) throws Exception {basedService.getConfigurationFromNacos();}
}

如果我们增加新的配置只需要在yaml中进行修改即可,输出就会改变了
如下:
