1. java项目配置

1.1. 基本配置

  1. 引入依赖
<!--nacos配置管理依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  1. 在resources目录下新建一个文件bootstrap.yml
spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev #环境名,这里是dev 
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # Nacos地址
        file-extension: yaml # 配置文件后缀名
  1. 热部署注意事项

​ 在java文件获取配置文件的时候,大概有三种方式,分别是使用

​ i. @Value("\${配置名}")

​ ii. @ConfigurationProperties

​ iii. 自动注入Environment对象,调用getProperty("配置名")方法

其中,配置热更新以后,只有@Value不会收到热更新,需要在@Value所在类上添加@RefreshScope注解

1.2. 跨服务配置共享

当我们 多个服务 需要共享同一个配置文件的时候,在配置文件中 添加 如下内容

spring:
  cloud:
    nacos:
      config:
        extension-configs:
          - data-id: ext.yml  # 跨服务配置文件名,可以使用其他后缀
            refresh: true     # 是否启动热部署
        #或
        shared-configs:
          - data-id: share.yml
            refresh: true

extension-configsshared-configs 都是用于配置跨服务共享,而且两者的值都是集合,可以配置多个跨服务配置文件。

两者的作用是一样的,不过extension-configs的优先级大于shared-configs

1.3. 配置优先级

远程配置 > 本地配置

在远程配置中,同服务配置 > 跨服务配置

在同服务配置中,带环境配置 > 服务共享配置。

在跨服务配置中,extension > shared

2. Nacos配置

2.1. 基本配置

  1. 安装,登录和启动Nacos
  2. 配置管理->配置列表中新增配置。

配置中,注意ID应该由几部分组成:服务名-环境名.文件后缀名(如:userservice-dev.yml)

如果文件后缀名是yml,也可以省略

image-20210714164742924

image-20210714164856664

2.2. 同服务配置共享

当我们同一个服务配置多个环境的时候,就会存在多个配置文件。这些配置文件中包含大量重复的配置,而且经常需要一起修改。

这时候,我们就可以设置一个同服务共享的配置文件。

同服务的配置文件,ID格式为 服务名.文件后缀名(如:userservice-dev.yml)

如人饮水,冷暖自知。
最后更新于 2023-08-03