spring cloud alibaba之nacos配置中心(五)

一、博客背景

在前面学习的spring cloud系列博客中,是以spring cloud config作为服务的配置中心和客户端,今天来学习下nacos作为配置中心和作为客户端

二、配置中心

在spring cloud系列的配置中心里需要自己引入相关依赖,并手写一个配置中心服务,而用nacos则不需要,可以直接用nacos服务作为配置中心

上图就是nacos作为配置中心,并新建的一种配置

三、配置中心新建配置

Data ID的匹配规则:

 ${spring.cloud.nacos.config.prefix}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}

        前缀-环境名.配置文件类型

       spring.cloud.nacos.config.prefix    如果没有配置该项,则默认为spring.application.name,即服务名

       spring.profile.active                        环境,可以隔离不同配置环境之间的配置,如dev,uat,pro,即当前环境对应的profile,默认无

        spring.cloud.nacos.config.file-extension 配置内容的数据格式, 默认.properties

当spring.profile.active为空时,dataid的匹配规则将变为 ${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}

四、新建nacosconfig子模块

新建子模块,在该模块中新建接口访问配置中心的配置

五、修改pom文件

修改pom文件,引入nacos-config等相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-cloud-alibab</artifactId>
        <groupId>com</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>nacosconfig</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>

    </dependencies>


</project>

六、创建bootstrap.yml文件

nacos同spring cloud config一样,在项目初始化时,要先保证从配置拉取配置,配置拉取之后才能进行正常的项目启动。而springboot项目中配置文件是存在优先级的,bootstrap文件的优先级是高于application文件的

server:
  port: 8987
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        #指定nacos server的地址
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
        file-extension: yml

可以看到配置文件中的name+file-extension为nacos-config.yml,即为我们前面新建配置时dataid的值,必须保证这两者的值一致,无论是那边配合做修改

七、新建启动类

新建启动类NacosConfigApplication

package tp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @Package: PACKAGE_NAME
 * @ClassName: NacosConfigApplication
 * @Author: tanp
 * @Description: ${description}
 * @Date: 2020/8/4 15:45
 */
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApplication.class,args);
    }
}

八、新建访问controller

新建ShowConfigController来展示配置中心新建的配置

package tp;

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;

/**
 * @Package: tp
 * @ClassName: ShowConfigController
 * @Author: tanp
 * @Description: ${description}
 * @Date: 2020/8/4 15:48
 */
@RestController
@RefreshScope
public class ShowConfigController {

    @Value("${testconfig}")
    String testConfig;

    @RequestMapping("showTestConfig")
    public String showTestConfig(){
        return testConfig;
    }
}
@RefreshScope可实时自动刷新配置中心修改的配置

在上面的代码需要注意的是showTestConfig的方法需要为public,为private获取不到te身体Config的值,是什么原因造成这样,并没有查出来,只能暂时理解为用nacos做配置中心需要这么处理

九、启动项目并访问

启动项目并访问:http://localhost:8987/showTestConfig

可以看到,输出的值正是配置中心进行配置的值

十、总结

可以看到,相对于spring cloud config做配置中心和配置客户端而言,使用nacos简单的多,不需要搭建配置中心服务,也不需要在git上新建配置,yml文件中的配置也相对于spring cloud config的配置要简单很多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值