项目示例 - 4.配置中心 - 1.Nacos

项目示例 - 4.配置中心 - 1.Nacos

关联知识:

  • 分布式微服务 - 4.配置中心 - 2.Nacos

内容提要:

  • 基本使用

基本使用

  1. 建Module:微服务起名为nacos-config
  2. 改pom:引入以下依赖
xml 复制代码
    <dependencies>
        <!--Nacos的配置管理-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <!--新版Spring Cloud禁用了bootstrap,导入依赖启用bootstrap-->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <!--Nacos的服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
  1. 写yml:在resources目录下创建application.yml和bootstrap.yml文件,并做以下配置
yml 复制代码
# application.yml
server:
  port: 8001

spring:
  profiles:
    active: test
  cloud:
    nacos:
      discovery:
        # nacos的地址
        server-addr: localhost:8848
yml 复制代码
# bootstrap.yml
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      config:
        # nacos地址
        server-addr: localhost:8848
        # 可配置namespace和group
        group: DEFAULT_GROUP
        # 配置文件的类型
        file-extension: yml
  1. 主启动:在src下创建如下主启动类
java 复制代码
package learn.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class NacosConfig {

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

}
  1. 业务构建:创建如下controller类
java 复制代码
package learn.demo.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;

@RestController
@RequestMapping("/nacos/config/")
@RefreshScope // 配合@Value来刷新属性值
public class ConfigController {
    @Value("${spring.application.name} ${server.port}")
    private String serverInfo;
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("test")
    public String test() {
        return serverInfo+"\t"+configInfo;
    }

}
  1. 配置文件:启动nacos,并在配置列表中创建配置,Data Id为nacos-config-test.yml、Group为DEFAULT_GROUP、配置格式为yaml,配置内容如下
yml 复制代码
config:
    info: nacos-config-test.yml version=1
  1. 测试:
    1. 启动本微服务,浏览器访问localhost:8001/nacos/config/test 接口,能正常返回信息
    2. 在nacos中修改配置文件内容,不重启微服务的情况下再次访问接口,接口返回信息也同步更改
      .
相关推荐
ybwycx19 分钟前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
程途知微1 小时前
AQS 同步器——Java 并发框架的核心底座全解析
java·后端
iPadiPhone1 小时前
分布式架构的“润滑剂”:RabbitMQ 核心原理与大厂面试避坑指南
分布式·后端·面试·架构·rabbitmq
武子康2 小时前
大数据-255 离线数仓 - Apache Atlas 数据血缘与元数据管理实战指南
大数据·后端·apache hive
javaTodo2 小时前
IntelliJ IDEA 2026.1 上强度了:Spring 运行时 Debug + AI 全面接入,太香了
后端
晴栀ay2 小时前
Generator + RxJS 重构 LLM 流式输出的“丝滑”架构
javascript·后端·llm
下次一定x2 小时前
深度解析 Kratos 客户端服务发现与负载均衡:从 Dial 入口到 gRPC 全链路落地(下篇)
后端·go
彭于晏Yan3 小时前
SpringBoot整合ECC实现文件签名与验签
java·spring boot·后端
pupudawang3 小时前
Spring EL 表达式的简单介绍和使用
java·后端·spring
xianjian09124 小时前
springboot与springcloud以及springcloudalibaba版本对照
spring boot·后端·spring cloud