Nacos分布式配置中心

本文介绍了如何在SpringBoot项目中引入SpringCloudAlibaba的Nacos配置中心,强调了在bootstrap.properties中的配置加载顺序和优势,以及如何利用@RefreshScope实现配置的自动刷新。
摘要由CSDN通过智能技术生成
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.11.RELEASE</version>
        <relativePath/> 
    </parent>
    <groupId>com.x</groupId>
    <artifactId>spring-cloud-alibaba-root</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <properties>
        <java.version>1.8</java.version>
        <spring.cloud.version>Hoxton.SR8</spring.cloud.version>
        <spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version>
    </properties>
<modules>
    <module>spring-cloud-nacos</module>
</modules>
    <dependencyManagement>
        <dependencies>
            <!--Spring Cloud的版本管理-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
           <!--Spring Cloud Alibaba的版本管理-->
            <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>

    <build>

    </build>

</project>


1. 引入依赖

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

     </dependency>

2.新建bootstrap.properties

在使用Nacos作为配置中心时,推荐在bootstrap.propertiesbootstrap.yml中配置Nacos相关信息,而不是在application.propertiesapplication.yml中,原因主要涉及Spring Boot的启动过程和配置加载顺序:

1.早于主应用加载bootstrap.propertiesbootstrap.yml会在application.propertiesapplication.yml之前被加载。这意味着Nacos客户端的配置信息可以在应用的主配置被处理之前就被初始化,包括获取远程配置的能力。这样,应用在启动时就能使用从Nacos配置中心获取的配置,而非本地静态配置,实现了配置的动态性和灵活性。

2.配置优先级bootstrap配置的优先级高于application配置,这保证了从Nacos加载的配置可以覆盖本地默认配置,满足了外部化配置的需求,即运行时的配置能够覆盖编译时的配置。

在这里插入图片描述

3. 配置如下:

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.11.99:8848

        # 如果你不指定这个name,默认使用的是spring.application.name。
        # 如果你指定,就按你配置的名称作为DataId去找。
        name: DataId名称

        # 如果你不指定分组,默认使用DEFAULT_GROUP这个组。
        # 如果你指定了,就按你配置的这个group去找,一般我们不去配置这么细。
        group: group1

        # 如果不配置,使用的就是默认命名空间`public`。
        # 如果你配置,就使用你配置的命名空间去查找。主要用在业务或者环境的逻辑区分
        namespace: test

4.通过 Spring Cloud 原生注解@RefreshScope 实现配置自动更新

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${boy.name:潘周聃}")
    private String name;

    @RequestMapping("/get")
    public String get() {
        return this.name;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值