SpringCloud Alibaba光速入门 - Nacos配置中心(三)

上一篇我们讲了Nacos作为服务注册中心的用法,这一篇我们讲Nacos另一个功能——配置中心。
人狠话不多,直接上代码。
直接改造 sca 主模块的pom,添加配置中心的依赖


        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-config
            0.2.2.RELEASE
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

sca-rest-normal 的 application.yml 的文件名改为 bootstrap.yml,这是由spring boot的加载属性文件的优先级决定的,想要在加载属性之前去config server上取配置文件,那NacosConfig或SpringCloudConfig相关配置就是需要最先加载的,而bootstrap配置的加载是先于application配置的,所以config client要配置config的相关配置就只能写到bootstrap配置里了。

其内容如下:

spring:
  application:
    name: normal-rest
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
  profiles:
      active: dev

这里我没有配置项目端口号,所以默认启动肯定是8080,但是我们会在配置中心配置端口号,以便用来检验配置中心是否成功。
进入Nacos管理页面,选择左侧的配置列表,然后新建一个配置


SpringCloud Alibaba光速入门 - Nacos配置中心(三)_第1张图片

这里的 Data ID 命名规则需要注意:

Data ID = ${prefix}-${spring.profile.active}.${file-extension}

其中,prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}。
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

SpringCloud Alibaba光速入门 - Nacos配置中心(三)_第2张图片

配置好之后点击发布,然后我的配置列表就多了一条配置信息


SpringCloud Alibaba光速入门 - Nacos配置中心(三)_第3张图片

改造OrderRest类

package com.ldh.sca.rest.normal;

import lombok.extern.slf4j.Slf4j;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("order")
@RefreshScope
public class OrderRest {

    @Value("${ldh.name}")
    private String name;

    @GetMapping("/getName")
    public String createOrder() {
        System.out.println(name);
        return name;
    }

     
    @RequestMapping("/createOrder")
    public String createOrder() {
        System.out.println("创建订单");
        return null;
    }
}

启动项目,然后访问 http://localhost:8889/order/getName,如果访问成功,并且返回配置中心配置的name值,那么,Nacos配置中心就生效了

你可能感兴趣的:(SpringCloud Alibaba光速入门 - Nacos配置中心(三))