nacos实现配置的动态变更方式

 更新时间:2026年06月12日 08:53:02   作者:大佬腿好粗  
这段描述主要介绍了如何通过Spring Cloud Alibaba Nacos Config引入依赖实现配置动态变更,重点在于配置Nacos命名空间及YMLML文件动态引用,最后通过启动项目自动加载Nacos中的配置文件

pom引入依赖

spring-cloud-starter-alibaba-nacos-config用于配置的动态变更

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-boot.version>2.1.2.RELEASE</spring-boot.version>
    <spring-cloud-alibaba.version>2.1.2.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencies>
	<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>
</dependencies>
<dependencyManagement>
	<dependencies>
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-dependencies</artifactId>
	        <version>${spring-boot.version}</version>
	        <type>pom</type>
	        <scope>import</scope>
	    </dependency>
	    <dependency>
	        <groupId>com.alibaba.cloud</groupId>
	        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
	        <version>${spring-cloud-alibaba.version}</version>
	        <type>pom</type>
	        <scope>import</scope>
	    </dependency>
	</dependencies>
</dependencyManagement>
<profiles>
	<profile>
	    <id>local</id>
	    <properties>
	        <environment>local</environment>
	    </properties>
	    <activation>
	        <activeByDefault>true</activeByDefault>
	    </activation>
	</profile>
	<profile>
	    <id>dev</id>
	    <properties>
	        <environment>dev</environment>
	    </properties>
	</profile>
	<profile>
	    <id>test</id>
	    <properties>
	        <environment>test</environment>
	    </properties>
	</profile>
	<profile>
	    <id>uat</id>
	    <properties>
	        <environment>uat</environment>
	    </properties>
	</profile>
	<profile>
	    <id>prod</id>
	    <properties>
	        <environment>prod</environment>
	    </properties>
	</profile>
</profiles>
<build>
    <resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
            <includes>
                <include>bootstrap-${environment}.yml</include>
                <include>bootstrap.yml</include>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
</build>

nacos管理台新建命名空间

bootstrap.yml配置

  • 动态引用ddw命名空间下的DEFAULT_GROUP组的application.yml配置文件
  • 动态引用ddw命名空间下的DEFAULT_GROUP组的application.yml配置文件@artifactId@组下的application-dev.yml配置文件
spring:
  application:
      name: @artifactId@
  profiles:
    active: @environment@
  cloud:
    nacos:
      discovery:
        namespace: ddw
      config:
        namespace: ddw
        group: @artifactId@
        file-extension: yml
        shared-configs:
          - data-id: application.${spring.cloud.nacos.config.file-extension}
            group: DEFAULT_GROUP
            refresh: true
          - data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            group: @artifactId@
            refresh: true

bootstrap-dev.yml配置

指定nacos服务的地址

spring:
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848

nacos管理台配置文件

启动项目,就会自动加载nacos中的配置文件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java零基础教程之do-while循环语句实例

    Java零基础教程之do-while循环语句实例

    Java中的do-while循环是一种后测试循环语句,它类似于while循环,但它先执行循环体中的代码,然后再进行条件判断,无论条件是否满足,至少会执行一次循环体中的代码,这篇文章主要给大家介绍了关于Java零基础教程之do-while循环语句的相关资料,需要的朋友可以参考下
    2024-09-09
  • Java多线程高并发中解决ArrayList与HashSet和HashMap不安全的方案

    Java多线程高并发中解决ArrayList与HashSet和HashMap不安全的方案

    ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步,HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,关于HashSet有一件事应该牢记,即就条目数和容量之和来讲,迭代是线性的,接下来让我们详细来了解吧
    2021-11-11
  • spring-boot项目启动迟缓异常排查解决记录

    spring-boot项目启动迟缓异常排查解决记录

    这篇文章主要为大家介绍了spring-boot项目启动迟缓异常排查解决记录,突然在本地启动不起来了,表象特征就是在本地IDEA上运行时,进程卡住也不退出,应用启动时加载相关组件的日志也不输出
    2022-02-02
  • Java连接Linux服务器过程分析(附代码)

    Java连接Linux服务器过程分析(附代码)

    这篇文章主要介绍了Java连接Linux服务器过程分析(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Spring 定时任务@Scheduled 注解中的 Cron 表达式详解

    Spring 定时任务@Scheduled 注解中的 Cron 表达式详解

    Cron 表达式是一种用于定义定时任务触发时间的字符串表示形式,它由七个字段组成,分别表示秒、分钟、小时、日期、月份、星期和年份,这篇文章主要介绍了Spring 定时任务@Scheduled 注解中的 Cron 表达式,需要的朋友可以参考下
    2023-07-07
  • springboot之@KafkaListener注解自动装配流程分享

    springboot之@KafkaListener注解自动装配流程分享

    @KafkaListener是Spring Kafka框架提供的注解,Spring Boot对其提供了原生支持,通过引入依赖并在配置文件中加入Kafka相关配置,可以触发Kafka组件的自动状态,扫描@KafkaListener注解是Spring Boot自动装配的一部分
    2026-01-01
  • Java加载JDBC驱动程序实例详解

    Java加载JDBC驱动程序实例详解

    这篇文章主要介绍了Java加载JDBC驱动程序的方法,需要的朋友可以参考下
    2014-07-07
  • 继承JpaRepository后,找不到findOne()方法的解决

    继承JpaRepository后,找不到findOne()方法的解决

    这篇文章主要介绍了继承JpaRepository后,找不到findOne()方法的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java BasePooledObjectFactory 对象池化技术的使用

    Java BasePooledObjectFactory 对象池化技术的使用

    这篇文章主要介绍了Java BasePooledObjectFactory 对象池化技术,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 深入理解Java 线程通信

    深入理解Java 线程通信

    这篇文章主要介绍了Java 线程通信的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06

最新评论