项目示例 - 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中修改配置文件内容,不重启微服务的情况下再次访问接口,接口返回信息也同步更改
      .
相关推荐
唐青枫24 分钟前
别只把 enum 当常量列表:Zig 枚举、状态机与 Tagged Union 实战
后端
2601_9638702136 分钟前
【计算机毕业设计】基于Spring Boot的非遗文创产品交易平台的设计与实现
java·spring boot·后端
lv__pf37 分钟前
Spring之AOP底层源码解析(下)【TL spring14】
java·后端·spring
苍何1 小时前
保姆级教程,Codex 接入 DeepSeek V4 Pro 和 Grok 4.6,6 种方法全整理
后端
苍何1 小时前
全球首款原生全模态交互式世界模型来了,AI 视频终于能“玩”了
后端
一只叫煤球的猫1 小时前
Spring AI 2.0 源码解析(一):一次 ChatClient 调用到底经历了什么?
后端·面试·ai编程
andongni2031 小时前
后端参数校验
spring boot·后端·mybatis
颜进强1 小时前
06 - OpenSpec change 从模糊想法到完整契约:new change / explore / propose 三连
前端·后端·ai编程
Cache技术分享1 小时前
499. Java 反射 - 获取类型上的注解
前端·后端