欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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

最编程 2024-03-15 14:03:18
...

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

关联知识:

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

内容提要:

  • 基本使用

基本使用

  1. 建Module:微服务起名为nacos-config
  2. 改pom:引入以下依赖
    <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文件,并做以下配置
# application.yml
server:
  port: 8001

spring:
  profiles:
    active: test
  cloud:
    nacos:
      discovery:
        # nacos的地址
        server-addr: localhost:8848
# 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下创建如下主启动类
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类
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,配置内容如下
config:
    info: nacos-config-test.yml version=1
  1. 测试:
    1. 启动本微服务,浏览器访问localhost:8001/nacos/config/test 接口,能正常返回信息
    2. 在nacos中修改配置文件内容,不重启微服务的情况下再次访问接口,接口返回信息也同步更改
      .