Springboot 实践(17)spring boot整合Nacos配置中心

2023-11-12

        前文我们讲解了Nacos服务端的下载安装,本文我们降价spring boot整合nacos,实现Nacos服务器配置参数的访问。

一、启动Nacos服务,创建三个配置文件,如下所示

  • Springboot-Nacos-Client-dev.yaml文件配置参数

  • Springboot-Nacos-Client.yaml文件配置参数

  • sjl.yaml文件配置参数

二、建立Nacos客户端

1、利用MyEclipse2019创建web project工程,命名为“Springboot-Nacos-Client”,工程全貌如下图所示:

2、修改pom.xml文件

pom文件中加入对应jar包,

<!--注册中心的依赖-->

<dependency>

    <groupId>com.alibaba.cloud</groupId>

    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>

    <version>2.1.2.RELEASE</version>

</dependency>

<!-- 配置中心的依赖 -->

<dependency>

    <groupId>com.alibaba.cloud</groupId>

    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

    <version>2.1.2.RELEASE</version>

</dependency>      

<dependency>

    <groupId>com.alibaba.nacos</groupId>

    <artifactId>nacos-client</artifactId>

    <version>2.1.2</version>

</dependency>  

<dependency>

    <groupId>com.alibaba.cloud</groupId>

    <artifactId>spring-cloud-alibaba-dependencies</artifactId>

    <version>2.1.2.RELEASE</version>

    <type>pom</type>

    <scope>import</scope>

</dependency>

备注:注意上述jar包的版本,需要和Nacos官网发布的匹配版本一致,否则会有各种奇怪问题出现。

3、修改application.yml文件

文件内容如下:

spring:

  application:

    name: Springboot-Nacos-Client

  profiles:

    active: dev  # 激活配置

  cloud:

 nacos:

   discovery:

     server-addr: 127.0.0.1:8848

     username: nacos

     password: nacos

      config:

       enabled: true # 是否开启配置中心 默认true

       server-addr: 127.0.0.1:8848  #nacos地址

       username: nacos

password: nacos

       namespace: 7fe8fb2f-9e3a-438b-bf9a-1a0ca8d4c898 

       group: test

       prefix: ${spring.application.name}

       file-extension: yaml   #文件后缀,可省略不配置      

       extension-configs:

          - data-id: sjl.yaml

            group: test

                refresh: true

             - data-id: Springboot-Nacos-Client.yaml

               group: test

               refresh: true

备注:

spring-cloud-starter-alibaba-nacos-config 默认加载文件

加载 dataid 为 ${spring.application.name}.${file-extension:properties} 为前缀的基础配置,

加载dataid为 ${spring.application.name}-${profile}.${file-extension:properties} 的基础配置

extension-configs:  #扩展配置,用于引入多个配置;多配置文件时,避免出现系统参数配置%

配置文件优先权

通过内部相关规则(应用名、扩展名、profiles)自动生成相关的 Data Id 配置优先级最高nacos中的配置优先于本地配置,本地的bootstrap.yml>bootstrap.properties>application.yml>application.yaml>application.properties

扩展配置(extension-configs) > 共享配置(shared-configs)

同为扩展配置,存在如下优先级关系:extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0]

同为共享配置,存在如下优先级关系:shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]

4、添加启动函数

@SpringBootApplication(scanBasePackages= {"com.SJL"},exclude = {

        DataSourceAutoConfiguration.class,

        DataSourceTransactionManagerAutoConfiguration.class,

        HibernateJpaAutoConfiguration.class})

@ComponentScan(basePackages= {"com.SJL"})

@ServletComponentScan(basePackages= {"com.SJL"})

@EnableDiscoveryClient

public class ConfingClientApplication {

    public static void main(String[] args) {

        SpringApplication.run(ConfingClientApplication.class, args);

    }              

}

5、添加Controller,访问Nacos配置文件参数

创建三个Controller文件,分别如下:

☆NacosConfigController文件

@RequestMapping("/config")

@RestController

@RefreshScope

@NacosConfigurationProperties(dataId = "Springboot-Nacos-Client-dev.yaml", groupId = "test", autoRefreshed = true)

public class NacosConfigController {

    @Value(value = "${config.name}")

    private String configName;

    @NacosInjected

    private ConfigService configService;

    @GetMapping("getConfigName")

    public String getConfigName(){

        return configName;

    }      

}

☆NacosConfigController2文件

@RequestMapping("/config2")

@RestController

@RefreshScope

@NacosConfigurationProperties(dataId = "Springboot-Nacos-Client.yaml", groupId = "test", autoRefreshed = true)

public class NacosConfigController2 {

    @Value(value = "${auther}")

    private String auther;

    @NacosInjected

    private ConfigService configService;

    @GetMapping("getAuther")

    public String getAuther(){

        return auther;

    }

}

☆NacosConfigController3文件

RequestMapping("/config3")

@RestController

@RefreshScope

@NacosConfigurationProperties(dataId = "sjl.yaml", groupId = "test", autoRefreshed = true)

public class NacosConfigController3 {

    @Value(value = "${name}")

    private String name;

    @GetMapping("getName")

    public String getName(){

      return name;

    }   

}

三、测试

在浏览中,输入“localhost:2881/swagger-ui.html”,测试三个controller的返回结果,如下所示,能够获得争取结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot 实践(17)spring boot整合Nacos配置中心 的相关文章

随机推荐

  • 数据挖掘与数据分析的主要区别

    本文来自网易云社区 百科是这样定义数据挖掘和数据分析的 数据分析 是指用适当的统计分析方法对收集来的大量数据进行分析 提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 这一过程也是质量管理体系的支持过程 在实用中 数据分析可帮助人
  • Java集合框架之Set集合简介

    和List集合一样 Set集合也是属于单列集合 同属于Collcetion集合体系下 List和Set都是单列集合 但是他们是存在区别的 List 有序 元素可重复的单列集合 Set 无序 元素不可重复的单列集合 Set和List集合一样属
  • idea移除许可证

    目录 一 介绍 二 操作步骤 一 介绍 当自己的idea日期要到了 又想续上 但是覆盖不了之前的日期 新的没办法生效 那么就要把原先的许可证先移除 再重新续上新的 二 操作步骤 1 点击idea的右上角的这个展开 2 选择帮助 点击注册 3
  • 算法➡数学问题

    文章目录 进制转换 最大公约数与最小公倍数 最大公约数 素数 判断素数 素数表的获取 质因子分解 大数运算 大数乘法 几何问题 由三点的坐标求所构成的三角形的面积 判断点是否在三角形内 集合问题 子集问题 数学归纳法 回溯法 全排列 进制转
  • 面试经典(5)--二叉树最低公共祖先LCA

    题目 输入二叉树的俩个节点 求它们的最低公共祖先 算法分析 我们直接来分析O n 的算法 比如求节点F和节点H的最低公共祖先 先求出从根节点A到F的路径 再求出A到H的路径 那么最后一个相同的节点就是最低公共祖先 A gt B gt D g
  • 算法——有向图的最短路径算法

    建议学习最短路径算法时 观看这个视频 https www bilibili com video BV1q4411M7r9 from search seid 9662298119837732890 Dijkstra算法 思路 1 从一个单源节
  • Flex 开发入门

    级别 初级 刘 庆 qlcdl cn ibm com 软件工程师 IBM 软件开发中心 2009 年 1 月 07 日 本文介绍 Flex 开发的基础知识 包括如何搭建开发环境 如何调试 以及如何建立和部署简单的
  • sharding-jdbc配置的数据源连接失败原因之一

    首先我们来看看官方的配置 spring shardingsphere datasource names ds ds0 ds1 spring shardingsphere datasource ds type org apache commo
  • 实现一个顺序存储的队列(数据结构与算法 - 队列)

    相关知识 队列是一个插入操作和删除操作受到限制的线性表数据结构 队列的插入和删除被限制在表的两端 即插入操作只能在表的一端进行 而删除操作只能在表的另一端进行 因此队列又称先进先出表 顺序存储的队列 队列既可以采用顺序存储 也可以采用链接存
  • 指数函数,幂函数,对数函数

    摘自 https zhikunhuo blog csdn net article details 100828713 指数函数 幂函数 对数函数为高等数学中的初等函数 指数函数 指数函数公式为y a x 其函数增长性如下 指数函数的单调性是
  • linux环境下vcs+verdi的使用

    文章目录 前言 一 vcs编译过程 二 vcs常用指令 1 常用 1 编译文件 2 debug选项 3 目录 4 使用verdi时需要在vcs里面添加的编译选项 5 仿真选项 加在sim里面 6 其他 7 完整版本 2 覆盖率相关 3 波形
  • 通过SSH -q -X来远程打开连接显示图形界面

    以下以qtcreator 为例 以Ubuntu 16 04 4 LTS为例 安装配置主要分为服务器端和客户端两个方面 一 服务器端配置 安装ssh服务 sudo apt get install openssh server apt get是
  • BurpSuite扩展--python扩展运行环境配置

    BurpSuite扩展 python扩展运行环境配置 Burp扩展可以用Java Python或Ruby编写 Java扩展可以直接在Burp中运行 而无需任何其他配置 在安装以Python或Ruby编写的扩展之前 您需要下载Jython或J
  • 电子日历HTML布局,css

    css import url https fonts googleapis com css2 family Roboto wght 400 500 700 display swap box sizing border box padding
  • 关于软考,人事考试照片格式要求如何修改,且通过照片审核处理系统。要求295px*413px像素

    首先要ps工具 你自己的照片 照片是白底的 如果是蓝底的 可直接在ps里的图像 gt 调整 gt 替换颜色 我的底色是从蓝色换到白色 之后就是图片的大小我们可以直接在图像 gt 图像大小设置图片的像素要求 这里你直接 最后导出的时候我选的是
  • 【华为OD机试真题2023 JAVA&JS】几何平均值最大子数组

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 几何平均值最大子数组 知识点数组二分查找 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大
  • python 爬虫 requests模块实现上传文件files参数

    使用requests模块实现向服务器上传文件非常简单 只需要指定post 函数中的files参数即可 files参数可以指定一个BufferedReader对象 该对象可以使用内置的open 函数返回 代码如下 import request
  • 项目五:基于mvc模式的学生管理系统-----------------待更新

    基于mvc模式的学生管理系统 第一阶段 数据库准备及环境配置
  • 春秋云镜 CVE-2021-41947

    春秋云镜 CVE 2021 41947 Subrion CMS v4 2 1 存在sql注入 靶标介绍 Subrion CMS v4 2 1 存在sql注入 启动场景 漏洞利用 exp http localhost panel visual
  • Springboot 实践(17)spring boot整合Nacos配置中心

    前文我们讲解了Nacos服务端的下载安装 本文我们降价spring boot整合nacos 实现Nacos服务器配置参数的访问 一 启动Nacos服务 创建三个配置文件 如下所示 Springboot Nacos Client dev ya