springcloud - alibaba - 3 - 整合config - 更新完毕


0、补充

截图




1、需求

  • 如果我有这么一个请求:我想要gitee中的配置改了之后,我程序yml中的配置也可以跟着相应产生变化,利用原生的方式怎么做?一般做法如下:

    • 截图
  • 而有了SpringCloud-alibab的config配置管理之后,就方便得多了,具体操作马上演示




2、创建配置

截图

截图

然后选择发布即可




3、快速上手

3.1)、依赖

  • 依赖管理

    <parent>
        <artifactId>spring-boot-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <!-- 注意这里的版本问题 -->
        <version>2.3.12.RELEASE</version>
        <relativePath/>
    </parent>



  • 项目需要的依赖
  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- springcloud-alibaba-nacos需要的依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- springcloud-alibaba-config需要的依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

    </dependencies>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <!-- 注意这里的版本问题 -->
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

    </dependencyManagement>




3.2)、编写yml配置


spring:
  application:
    name: ALIBABA-PUBLISHER

  cloud:
    nacos:
      server-addr: 162.14.66.60:8848    # 代表服务端的地址
      discovery:
        server-addr: ${spring.cloud.nacos.server-addr}
      config:
        file-extension: yml   # 文件后缀名 必须配置  这个config中还有其他配合,如:命名空间....按需要直接配置即可
        group: DEFAULT_GROUP
  profiles:
    active: dev   # 文件拓展名  这个必须配置,对应application-dev.yml中的dev.....
    
# 如上配置的意思:
#   通过 server-addr这个地址,找到ALIBABA-PUBLISHER-dev.yml配置文件
#       注:文件格式必须是 xxxxx-dev / test.yml / 或者其他后缀名,即:必须有拓展名

截图




3.3)、编写启动类


package cn.zixieqing;

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

/**
 * @ClassName PublisherApplication
 * @Author ZiXieQing
 * @Date 2021/12/7
 * Version 1.0
 **/

@SpringBootApplication
@EnableDiscoveryClient
public class PublisherApplication {

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

截图




3.4)、编写服务


package cn.zixieqing.controller;

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;

/**
 * @ClassName ProvideService
 * @Author ZiXieQing
 * @Date 2021/12/7
 * Version 1.0
 **/

@RestController
@RefreshScope       // 同步   nacos中配置做了修改,这里也会同步更新
@RequestMapping("/service")
public class ProvideService {

    @Value("${server.port}")
    private String port;

    @GetMapping("/provider")
    public String provider() {

        System.out.println(port);

        return "你要结果,那老衲就给你一个结果嘛!" + "=== 当前端口为:==>" + port;
    }
}

截图




3.5)、运行效果如下

截图

但是:我改了nacos中的配置呢?

  • 截图

  • 再次发起请求

    • 截图

    • 可见:自动刷新了,这比springcloud的config强大多了,爽得很


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM