ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【Spring Cloud 】进阶之Config配置中心

2026/9/26 10:32:40 拓冰建站 浏览量
【Spring Cloud 】进阶之Config配置中心

目录

config大致的一个思路:

二,前期准备

2.1导入依赖

2.2编写bootstrop.yml:

三,编写Controller类

3.1获取单个配置类信息

3.2获取多个配置类信息


                                  🎉🎉欢迎来到我的CSDN主页!🎉🎉

                        🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚

        🌟推荐给大家我的博客专栏《【SpringCloud】之远程消费(进阶使用)》。🎯🎯

                        🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁
————————————————
版权声明:本文为CSDN博主「平顶山大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_73647713/article/details/135429101

今天我们来聊一聊关于Spring Cloud 中的Config知识

config大致的一个思路:

不同环境不同配置:例如数据源在不同的环境(开发,测试,生产)是不同的,可以通过配置中心 运行期间可以动态调整。例如根据各个微服务的负载状况,动态调整数据源连接池大小或者熔断阀 值,并且调整时不停止微服务(配置修改后可以自动更新)。每个服务都需要必要的配置信息才能运行,所以一套集中式的,动态的配置管理设施是必不可少的。

二,前期准备

bootstrap.yml SpringBoot默认支持properties和YAML两种格式的配置文件。 bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使 用来配置application.yml中使用到参数等 application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用 的公共参数等。 bootstrap.yml 先于 application.yml 加载。

2.1导入依赖

        <!--配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--配置类--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

这两个依赖项在 Spring Cloud 中用于支持配置中心功能。

  1. spring-cloud-starter-alibaba-nacos-config 是 Alibaba Nacos 提供的一个 Spring Cloud Starter,用于集成 Nacos 作为配置中心。Nacos 是一个可扩展的动态服务发现、配置和管理平台,它提供了统一的配置管理和动态配置刷新的能力。通过添加该依赖项,可以在应用程序中使用 Nacos 作为配置中心,集中管理应用程序的配置信息,并实时更新应用程序的配置。

  2. spring-cloud-starter-bootstrap 是 Spring Cloud 提供的一个 Starter,用于支持在应用程序启动阶段加载 bootstrap.yml 配置文件。bootstrap.yml 是在 application.yml 文件之前加载的,用于初始化应用程序的一些关键配置。通过添加该依赖项,可以确保在应用程序启动时,bootstrap.yml 中的配置项被正确加载和使用。

综合起来,通过引入这两个依赖项,可以使用 Nacos 作为配置中心,将应用程序的配置集中存储、管理和更新,并在应用程序启动时加载 bootstrap.yml 文件,以确保关键配置项的正确初始化。这样可以提高配置管理的灵活性和可扩展性,使得应用程序可以更方便地适应不同环境和需求。

2.2编写bootstrop.yml:

server:port: 8082
spring:application:name: providercloud:nacos:server-addr: localhost:8848# username: nacos# password: nacosconfig:prefix: ${spring.application.name} #前缀#指定nacos配置中心地址server-addr: localhost:8848file-extension: yaml # 使用的 nacos 配置集的 dataId 的文件拓展名,同时也是#      Nacos 配置集的配置格式,默认为 properties#      namespace: f1896568-xxxx-45d8-8a93-a64c5bcc22ff # 使用的 nacos 的命名空间,#      默认为 nullgroup: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP# 共享配置集数组shared-configs:- data-id: redisgroup: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUPrefresh: true # 是否自动刷新配置,默认为 fals

三,编写Controller类

3.1获取单个配置类信息

弊端:这样写开发效率低下,容易写错

3.2获取多个配置类信息

使用spring注入依赖的方式:

package com.lya.provider;import com.lya.provider.config.UserProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author 微微*/@EnableDiscoveryClient
@RestController
@RequestMapping("/user")
@Slf4jpublic class ConfigController {//    使用注解读取到yaml中配置信息@Value("${user.name}")private String name;@Value("${user.info}")private String info;@Autowiredprivate UserProperties userProperties;@RequestMapping("/test01")public String getbypath() {log.info("name:{},info:{}", name,info);return "🍗";}@RequestMapping("/test02")public String test02() {log.info("userProperties:{}", userProperties);return "🍗";}}

启动类上加上

@RefreshScope