Springboot整合Nacos配置中心

前提

安装了Nacos服务端并登陆到其控制台页面。
Springboot整合Nacos配置中心_第1张图片
创建一个Springboot工程。

Nacos配置:(相关概念后面说明):
创建一个命名空间,当然,也有默认的命名空间。
Springboot整合Nacos配置中心_第2张图片

创建配置文件:
Springboot整合Nacos配置中心_第3张图片

Springboot整合Nacos配置中心_第4张图片

整合

第一步:引入Pom依赖:

springboot的版本是1.x就引入0.1.x,springboot版本是2.x就引入0.2.x版本。

<dependency>
            <groupId>com.alibaba.bootgroupId>
            <artifactId>nacos-config-spring-boot-starterartifactId>
            <version>0.2.7version>
        dependency>

第二步:配置Nacos Server地址:

#server地址
nacos.config.server-addr=127.0.0.1:12580

#配置配置的namespace,就是刚刚创建的那个
nacos.config.namespace=fe06ce62-aef9-4b78-b0cd-512e4bc56e3c

第三步:编写Controller类:

@RestController
@RequestMapping("/nacos")

//groupId
//dataId
//@NacosPropertySource(dataId = "aaa")
@NacosPropertySource(groupId = "NACOS-TEST-GROUP",dataId = "NACOS-TEST-DATA-ID",autoRefreshed = true)
public class NacosDemoController {

    @NacosValue(value = "${nacos.info:默认值}",autoRefreshed = true)
    private String info;

    @GetMapping("/project-info")
    public String projectInfo(){
        return info;
    }
}

使用注解@NacosPropertySource配置需要引入的外部配置的namespace、groupId、dataId等信息。
使用注解@NacosValue来引入配置文件中的具体配置项,使用${}表达式,冒号后可以填写默认值,当配置项不存在或者获取失败后,使用该默认值赋值。
autoRefreshed 代表是否自动动态刷新配置,默认false。

启动访问该接口:
Springboot整合Nacos配置中心_第5张图片
成功。并且修改配置后,会动态刷新。

一些概念

NameSpace:
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

GroupId:
Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。

DataId:
Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。

一个实践是:
使用NameSpace来定义环境,比如开发环境(dev)、测试环境(test)、生产环境(prod)。

使用GroupId来定义不同的应用,比如支付应用Pay,商品应用Goods。

使用DataId来区分配置,比如线程池的配置ThreadPoolConfig,数据源的配置,Redis配置,MQ配置等。

所以就可以有多条线:
dev环境-pay应用-数据源配置。
dev环境-pay应用-Redis配置。
test环境-pay应用-数据源配置。
test环境-pay应用-Redis配置。
prod环境-pay应用-数据源配置。
prod环境-pay应用-Redis配置。

或者有些人喜欢使用NameSpace来区分应用,使用GroupId来区分环境,这种看个人习惯。

你可能感兴趣的:(Spring,Cloud,Alibaba,配置中心,nacos)