嘉兴网站建设系统北京核子华曦检测所
springboot集成nacos
- 1.版本
 - 2. POM依赖
 - 3. nacos服务
 - 3.1 下载nacos压缩包
 - 3.2 启动nacos
 
- 4. yaml配置
 - 5.Demo
 - 5.1 配置中心简单格式获取方式
 - 普通方式还可以再启动类上添加注解完成
 - 5.2 获取json格式的demo
 - 5.2 自动注册根据yaml配置
 
1.版本
nacos版本:2.3.2
 springboot版本:2.1.3.RELEASE
2. POM依赖
           <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-discovery-spring-boot-starter</artifactId><version>0.2.3</version></dependency><dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-config-spring-boot-starter</artifactId><version>0.2.3</version></dependency>
 
3. nacos服务
3.1 下载nacos压缩包
https://github.com/alibaba/nacos/releases
3.2 启动nacos
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):sh startup.sh -m standalone如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:bash startup.sh -m standaloneWindows
启动命令(standalone代表着单机模式运行,非集群模式):startup.cmd -m standalone
 
4. yaml配置
nacos:discovery:server-addr: 127.0.0.1:8848enabled: trueautoRegister: true# 指定本项目的注册地址和端口号 这里配置的数元数据register:metadata:gRPC-port: 19090
 
5.Demo
5.1 配置中心简单格式获取方式


  @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)private boolean useLocalCache;@GetMapping("getNacos")public Result getNacos() throws NacosException {return ResultGenerator.getSuccessResult(useLocalCache);}
 
结果:
 
 
普通方式还可以再启动类上添加注解完成
@NacosPropertySources(value = {@NacosPropertySource(dataId = "example", groupId = "TEST_GROUP", autoRefreshed = true),@NacosPropertySource(dataId = "example", autoRefreshed = true),@NacosPropertySource(dataId = "testList", autoRefreshed = true)})
 
5.2 获取json格式的demo
@Configuration
public class NacosConfig {@Value("${nacos.config.server-addr}")private String serverAdd;@Value("${nacos.config.namespace:}")private String namespace;@Beanpublic ConfigService configService() throws NacosException {final Properties properties = new Properties();//设置Nacos节点对应的IP地址properties.setProperty(PropertyKeyConst.SERVER_ADDR, serverAdd);//设置命名空间properties.setProperty(PropertyKeyConst.NAMESPACE, namespace);//如果开启了Nacos权限校验,设置用户名
//        properties.setProperty(PropertyKeyConst.USERNAME,"nacos");
//        properties.setProperty(PropertyKeyConst.PASSWORD,"nacos");//设置获取配置信息的轮询超时时间properties.setProperty(PropertyKeyConst.CONFIG_LONG_POLL_TIMEOUT, "3000");//设置获取配置信息失败后的重试次数properties.setProperty(PropertyKeyConst.CONFIG_RETRY_TIME, "5");//设置是否开启客户端主动拉取最新的配置信息properties.setProperty(PropertyKeyConst.MAX_RETRY, "5");//构造一个ConfigService实例ConfigService configService = NacosFactory.createConfigService(properties);return configService;}}@RestController
@RequestMapping("test")
@Slf4j
public class TestController {@Autowiredprivate ConfigService configService;@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)private boolean useLocalCache;@GetMapping("getNacos")public Result getNacos() throws NacosException {String config = configService.getConfig("testjson", "DEFAULT_GROUP", 3000);getConfig();return ResultGenerator.getSuccessResult(useLocalCache);}}
 
结果:
 
 
5.2 自动注册根据yaml配置
enabled: true
autoRegister: true
 
当然可以在启动类上添加注解
 @EnableNacosDiscovery
 
