1.简要说明

  Nacos提供了作为配置中心的功能,只需要在Nacos的控制台页面添加配置,然后在项目中配置相应的"路径"就好。

  主要分为几个步骤:

    在Nacos控制台添加配置

    在项目引入依赖

    配置Nacos上的配置的"路径"

2.Nacos控制台配置说明

  配置管理-配置列表,可以看见我们的配置

   下图是我添加的一个配置

  Nacos的配置的完整名称路径是:命名空间+组Group名+Data Id,类似于项目+包名+类名,这样子可以对配置文件进行较好的分类管理。

  命名空间:默认存在一个命名空间public,也可以自己创建

  

组:在新建配置的时候设置,名字自己随意取

data id:在新建配置的时候设置,data id的值和我们项目中的配置有关,这个后面讲

  

 3.简单实例

3.1创建模块

  

3.2依赖

 <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

完整

<dependencies>

        <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> <dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> <dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
</dependencies>

3.3配置文件

application.yml

spring:
profiles:
active: dev

bootstrap.yml

server:
port: 3377 spring:
application:
name: nacos-config-client #将会作为注册到注册中心的服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #作为注册中心的Nacos的地址
config:
server-addr: localhost:8848 #作为配置中心Nacos的地址
file-extension: yaml #指定yaml格式的配置

为什么这里需要两个配置文件呢,这个data id有关

现在,我们看Data id是怎么形成的

  Data id的格式如下 ${prefix}-${spring.profiles.active}.${file-extension}

  ${prefix}:默认是spring.application.name的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置

${spring.profiles.active} 即为当前环境对应的 profile,注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension},最好不要少,这也就是上面弄了两个配置文件的原因

${file-extension}为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

 

  按照我们的配置,Data Id 也就是 nacos-config-client-dev.yaml

   上面的配置,也就是去找地址为 localhost:8848的Nacos,由于我们没有配置命名空间和组,所以找的是默认的命名空间public和默认组DEFAULT_GROUP,Data id是nacos-config-client-dev.yaml的配置

3.4主启动类

package com.atguigu.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /**
* @Classname NacosConfigClientMain3377
* @Description TODO
* @Date 2021/6/21 0021 下午 3:38
* @Created by jcc
*/
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class,args);
}
}

3.5业务类

package com.atguigu.springcloud.alibaba.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RefreshScope //动态刷新 通过这个注解实现配置的自动刷新,但我们修改配置了,会自动刷新
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo; //读取我们在Nacos上的配置的内容 config.info @GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}

3.6.在Nacos控制台创建配置

  

   Data id的值一定要对应上面项目中的配置形成的Data id的值

  Group采用默认的

  配置格式:选择YAML

  配置内容:config.info: 帅呀

3.7启动项目

  访问http://localhost:3377/config/info,读取到了配置内容

    

修改配置内容

再次访问

发现自动更新了配置内容

4.自定义命名空间和自定义组

4.1创建命名空间

  命名空间-新建命名空间

   id自动生成就好

  

创建成功后

 4.2在mysp命名空间下创建配置

  

选择命名空间为mysp,点击+新增配置

  

    Data id还是之前的不变

  Group:MY_GROUP      (自定义的组的名称)

  配置格式:YAML

  配置内容:mysp---MY_GROUP_帅呀

 4.3修改项目的配置文件

server:
port: 3377 spring:
application:
name: nacos-config-client #将会作为注册到注册中心的服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
config:
server-addr: localhost:8848 #配置中心地址
file-extension: yaml #指定yaml格式的配置 也就是去配置中心3348去找yml配置文件,而application的配置active: dev,有指定了找名字为dev的
namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e
group: MY_GROUP

  添加了两个配置内容:

    namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e    命名空间的id

    group: MY_GROUP   组名
  
   这里去找的是id为55b6e10a-d590-4260-83fc-60db57b47f3e的命名空间下,组名为MY_GROUP,data id为nacos-config-client-dev.yaml的配置

4.4重启项目
  
访问http://localhost:3377/config/info
  

												

最新文章

  1. SQL数据库插入文本信息
  2. encode_utf8 把字符编码成字节 decode_utf8解码UTF-8到字符
  3. VMWare12安装CentOS7以及redis安装和常用命令
  4. 在0~N个数字中,取指定个数的不重复数字,要求这些数字的和为指定值,求所有结果
  5. 简单说下C#变量的作用域
  6. JMS学习(一):初识JMS
  7. 每日冲刺报告——Day1(Java-Team)
  8. Vue实现移动端页面切换效果
  9. python------mysql API
  10. 从零开始学安全(二十七)●利用Nmap对防火墙,IDS,IPS 进行欺骗
  11. luoguP1850 换教室
  12. 使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据
  13. M2阶段团队个人贡献分
  14. 【C++】不要想当然使用resize
  15. iOS: 动画更换 UIImageView 的 Image
  16. OSX - 可以安装任何程序!
  17. 手动封装一个属于自己的AJAX类库
  18. weblogic下JNDI及JDBC连接测试(weblogic环境)
  19. [Android Memory] 使用 Eclipse Memory Analyzer 进行堆转储文件分析
  20. C 标准库 - string.h之strcpy使用

热门文章

  1. Go语言基础-从菜鸟到火鸡
  2. php 高并发
  3. &lt;七&gt;深入理解new和delete的原理
  4. 解决一个mysql报错
  5. table 动态隐藏tr行
  6. 【SQL进阶】Day05:窗口函数
  7. 【重难点整理】通过kafka的全过程叙述kafka的原理、特性及常见问题
  8. Java的两大、三类代理模式
  9. [数据结构][洛谷]P3375模板题 KMP
  10. LoadRunner11录制脚本