转载

Spring Cloud Alibaba Nacos Config 实战

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置

一、安装 Nacos

1、下载 Nacos

最新稳定版下载: https://github.com/alibaba/nacos/releases

2、启动 Nacos

启动 Nacos (单机模式)

sh startup.sh -m standalone

关闭 Nacos

sh shutdown.sh

二、配置 Nacos

1、打开 Nacos

默认地址: http://127.0.0.1:8848/nacos/#/login

默认账号:账号密码相同,都为 nacos

Spring Cloud Alibaba Nacos Config 实战

2、添加配置

配置数据:

Data ID:    nacos-dev.properties
Group  :    DEFAULT_GROUP
配置格式:    Properties
配置内容:   useLocalCache=true

Spring Cloud Alibaba Nacos Config 实战

Data ID 的格式说明:

${prefix}-${spring.profile.active}.${file-extension}

prefix :

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

spring.profile.active :

即为当前环境对应的 profile, 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

file-exetension :

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

实例:

spring.application.name=nacos
spring.profiles.active=dev
spring.cloud.nacos.config.file-extension=properties

Data ID 为: nacos-dev.properties

三、使用 Nacos

pom.xml 中添加 nacos 支持

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>0.9.0.RELEASE</version>
</dependency>

bootstrap.properties 加入 nacos 参数

server.port=8080
spring.profiles.active=dev
spring.application.name=nacos
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=properties

spring.cloud.nacos.config.server-addr :为 nacos 的服务器地址 : 端口,80端口不可省略

spring.cloud.nacos.config.file-extension :为 nacos 的支持的文件类型,如:yaml和properties

四、调用 Nacos

@Value SpEL调用

@RefreshScope 打开自动刷新

package com.ichochy.nacos.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    @RequestMapping("get")
    public boolean getConfig(){
        System.out.println(useLocalCache);
        return useLocalCache;
    }
}

联系方式:

邮箱: iChochy@qq.com

网站: https://www.ichochy.com

源文: https://www.ichochy.com/blog/2019/10/17/Spring-Cloud-Alibaba-Nacos-Config-实战.html

原文  https://segmentfault.com/a/1190000020720494
正文到此结束
Loading...