当前位置:   article > 正文

Spring Cloud + Nacos 三部曲之Config 配置_spring.cloud.nacos.config.contextpath

spring.cloud.nacos.config.contextpath

1、Spring Cloud + Nacos 三部曲之Config

2、Spring Cloud + Nacos 三部曲之Discovery服务注册发现

3、Spring Cloud + Nacos 三部曲之Discovery消费者

版本

  1. springboot版本:2.1.6.RELEASE
  2. nacos版本Nacos 1.1.0

创建一个springboot项目

快速开始
  1. pom引用
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  1. yml配置

修改配置名称: bootstrap.yml
添加配置信息

spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        # 如果是 .properties文件 不需要这个配置
        file-extension: yaml 
server:
  port: 8080
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  1. 代码
@RestController
@RefreshScope
public class SampleController {
    @Value("${user.name:null}")
    String userName;

    @Value("${user.age:25}")
    int age;

    @Value("${current.env:null}")
    String current;

    @GetMapping("/user")
    public String simple() {
        return "Hello Nacos Config!" + "Hello " + userName + " " + age + "!" + "current:" + current;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  1. 在nacos页面添加配置

dataID
Nacos Config Starter 中,dataId 的拼接格式如下

${prefix} - ${spring.profiles.active} . ${file-extension}
  • 1

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档

注意,当 activeprofile 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}

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

group
group 默认为 DEFAULT_GROUP,可以通过 spring.cloud.nacos.config.group 配置。

Data ID: nacos-config.yaml (这里与yml配置spring: application: name: nacos-config 保持一致)
Group: DEFAULT_GROUP
配置内容&配置格式: YAML
user:
  name: jeker
  age: 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. 测试接口 http://localhost:8080/user

推荐给类添加 @RefreshScope 或 @ConfigurationProperties 注解,可以编辑nacos-config.yaml 配置值,支持配置的动态更新

返回

Hello Nacos Config!Hello jeker 12!current:null
  • 1
支持profile粒度的配置

spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 ${spring.application.name}.${file-extension:properties} 为前缀的基础配置,还加载了dataid为 ${spring.application.name}-${profile}.${file-extension:properties} 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过Spring 提供的 ${spring.profiles.active} 这个配置项来配置。

spring.profiles.active=develop
  • 1
Note${spring.profiles.active} 当通过配置文件来指定时必须放在 bootstrap.yml 文件中。

新增一个2 dataid,分别为:nacos-config-develop.yaml,nacos-config-product.yaml
内容分别为
a.

current:
  env: develop-env
user:
  name: develop
  age: 92
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

b.

current:
  env: product-env
user:
  name: product
  age: 92
  • 1
  • 2
  • 3
  • 4
  • 5

分别设置配置spring.profiles.active=develop和spring.profiles.active=product然后启动项目,来测试接口返回值http://localhost:8080/user

多个应用间配置共享的 Data Id

可以通过以下的方式来配置:

spring.cloud.nacos.config.shared-dataids=bootstrap-common.properties,all-common.properties
  • 1

More

更多配置项
配置项key默认值说明
服务端地址spring.cloud.nacos.config.server-addr
DataId前缀spring.cloud.nacos.config.prefixspring.application.name
Groupspring.cloud.nacos.config.groupDEFAULT_GROUP
dataID后缀及内容文件格式spring.cloud.nacos.config.file-extensionpropertiesdataId的后缀,同时也是配置内容的文件格式,目前只支持 properties
配置内容的编码方式spring.cloud.nacos.config.encodeUTF-8配置的编码
获取配置的超时时间spring.cloud.nacos.config.timeout3000单位为 ms
配置的命名空间spring.cloud.nacos.config.namespace常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源隔离等。
AccessKeyspring.cloud.nacos.config.access-key
SecretKeyspring.cloud.nacos.config.secret-key
相对路径spring.cloud.nacos.config.context-path服务端 API 的相对路径
接入点spring.cloud.nacos.config.endpointUTF-8地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址
是否开启监听和自动刷新spring.cloud.nacos.config.refresh.enabledtrue

代码
个人站点

reference

Spring Cloud Alibaba Nacos Config

Nacos Config Example

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/182367
推荐阅读
相关标签
  

闽ICP备14008679号