欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springcloud alibaba——nacos作为配置中心

程序员文章站 2022-06-12 13:50:47
...

注:spring cloud alibaba不会像以前的springcloud一样由ConfigServer先从github上获取文件,再由微服务从ConfigServer上读取文件;springcloud alibaba技术直接把nacos作为配置中心,文件在nacos上面创建,也不需要由人为的手动动态刷新。
在nacos上存在namespace、group、dataId等概念,这些概念等同于:namespace——java类中的一级包,group——java类中的二级包,dataId——java类名,这样可以更好的分组管理。

微服务从nacos上面获取yaml

springcloud alibaba——nacos作为配置中心

1、pom文件

<?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>springcloud</artifactId>
        <groupId>com.springcloud</groupId>
        <version>1.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>alibaba-config-nacos-client3377</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

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

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <dependency>
            <groupId>com.springcloud</groupId>
            <artifactId>api-commons</artifactId>
            <version>1.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>


</project>

2、主配置类(bootstrap.yml)

server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848   #作为服务注册中心的地址
      config:
        server-addr: localhost:8848   #作为配置中心的地址
        file-extension: yaml    #指定读取文件的格式
        group: TEST_GROUP     #指定分组
        namespace: 3550246c-5683-484b-99b0-9a9950eb0261

#${spring.application.name}-${spring.profile.active}.${spring.cloud.config.file-extension}
#nacos-config-client-dev.yml

3、主配置类(application.yml)

spring:
  profiles:
    #active: dev   #表示开发环境
    active: info   #表示测试环境

4、控制器

package com.springcloud.controller;

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.RestController;

/**
 * @author dc
 * @date 2020/8/11 - 14:39
 */
@RestController
@Slf4j
@RefreshScope      //支持nacos动态刷新功能
public class ConfigClientController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }

}

5、主启动类

package com.springcloud;

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

/**
 * @author dc
 * @date 2020/8/11 - 14:38
 */
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {

    public static void main(String[] args) {
        SpringApplication.run(NacosConfigClientMain3377.class, args);
    }

}