项目示例 - 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中修改配置文件内容,不重启微服务的情况下再次访问接口,接口返回信息也同步更改
      .
相关推荐
H5css�海秀6 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
SuniaWang7 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
韩立学长7 小时前
Springboot校园跑腿业务系统0b7amk02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
sheji34167 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
代码栈上的思考8 小时前
消息队列:内存与磁盘数据中心设计与实现
后端·spring
程序员小假8 小时前
我们来说一下 b+ 树与 b 树的区别
java·后端
Meepo_haha9 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
sheji34169 小时前
【开题答辩全过程】以 基于springboot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Victor35610 小时前
MongoDB(57)如何优化MongoDB的查询性能?
后端