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

news2024/12/23 14:23:42

        前文我们讲解了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的返回结果,如下所示,能够获得争取结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1015919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebLOAD: 一站式性能测试工具

WebLOAD 是一款一站式前端性能测试工具&#xff0c;对测试人员来说使用非常方便。 它可以帮助前端工程师和测试快速对网页进行性能测试和优化&#xff0c;提高网页加载速度&#xff0c;减少页面卡顿和闪烁。 WebLOAD的特点、使用指南以及企业实际使用中的案列。 WebLOAD的特…

ARM 相关概念1

一、ARM相关介绍 二、ARM相关概念【重点】 三、ARM发展史 四、ARM产品分布 五、RICS和CISC的区别 六、数据类型约定 七、ARM处理器工作模式 八、寄存器 九、特殊功能寄存器【重点】 十、CPSR寄存器详解【重点】

uniapp h5 echarts 打包后图表点击失效/及其他失效

文章目录 期望效果实际效果环境引入echarts方式解决方法&#xff1a;注意 原因多说一句在h5打包的时候将 history 改为 hash 不然在浏览器打开后刷新会404 期望效果 实际效果 环境 pc端 window11 hbuilderx版本 3.8.12 echarts版本 5.4.3 引入echarts方式 npm install echar…

气传导耳机哪个好?值得推荐的气传导耳机分享

​随着生活节奏的加快&#xff0c;人们越来越关注听力健康。气传导耳机以其独特的传导方式和舒适的佩戴感受&#xff0c;逐渐成为耳机市场的新宠。气传导耳机不入耳设计听音&#xff0c;让你在享受音乐的同时&#xff0c;也能保护你的听力安全。今天我们就一起来看看几款值得大…

【CMU15-445 Part-10】Sorting and Aggregations

Part10-Sorting and Aggregations Part10-Sorting & Aggregations Query Plan 查询计划指的是指令或者是数据库系统如何执行一个给定查询的方式。整个查询计划是树形结构或者有向无环图。 Logical Plan&#xff1a;先SCAN A&#xff0c;交给join operator&#xff0c;SC…

Redis的介绍,安装Redis的方式

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Redis 初识Redis1.1 认识Redis1.2 安装Redis的方式…

18.4 【Linux】systemd-journald.service 简介

只有rsylogd的时候&#xff0c;rsylogd必须要开机完成并执行了rsyslogd这个daemon之后&#xff0c;登录文件才会开始记录。 现在有了systemd之后&#xff0c;它可以主动调用systemd-journald来协助记载登录文件&#xff0c;因此在开机过程中的所有信息&#xff0c;包括启动服务…

网络安全深入学习第四课——热门框架漏洞(RCE— Log4j2远程代码执行)

文章目录 一、log4j2二、背景三、影响版本四、漏洞原理五、LDAP和JNDI是什么六、漏洞手工复现1、利用DNSlog来测试漏洞是否存在2、加载恶意文件Exploit.java&#xff0c;将其编译成class文件3、开启web服务4、在恶意文件Exploit.class所在的目录开启LDAP服务5、监听反弹shell的…

Failed to start sshd.service: Unit sshd.service not found

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated.

1.在连接MySQL数据库时候会出现这个报错 Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unneces…

民用大中型无人直升机系统飞行性能飞行试验要求

声明 本文是学习GB-T 42856-2023 民用大中型无人直升机系统飞行性能飞行试验要求. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了民用大中型无人直升机系统飞行性能飞行试验的内容、目的、条件、实施、数据处理和 结果评定等要…

学Python的漫画漫步进阶 -- 第九步

学Python的漫画漫步进阶 -- 第九步 九、类与对象9.1 面向对象9.2 定义类9.3 创建对象9.4 类的成员9.4.1 实例变量9.4.2 构造方法9.4.3 实例方法9.4.4 类变量9.4.5 类方法 9.5 封装性9.5.1 私有变量9.5.2 私有方法9.5.3 使用属性 9.6 继承性9.6.1 Python中的继承9.6.2 多继承9.6…

DS线性表之顺序表

前言 上一期我们介绍了什么是数据结构和算法&#xff0c;以及介绍了算法效率问题即什么是时空复杂度~和时空复杂度的计算方式以及常见的时空复杂度的例题详解&#xff0c;本期我们来介绍一下线性表中的顺序表~&#xff01; 本期内容介绍 什么是线性表&#xff1f; 顺序表的概…

Llama2-Chinese项目:2.2-大语言模型词表扩充

因为原生LLaMA对中文的支持很弱&#xff0c;一个中文汉子往往被切分成多个token&#xff0c;因此需要对其进行中文词表扩展。思路通常是在中文语料库上训练一个中文tokenizer模型&#xff0c;然后将中文tokenizer与LLaMA原生tokenizer进行合并&#xff0c;最终得到一个扩展后的…

Linux网络编程:网络编程套接字

目录 一. 端口号的概念 二. 对于UDP和TCP协议的认识 三. 网络字节序 3.1 字节序的概念 3.2 网络通信中的字节序 3.3 本地地址格式和网络地址格式 四. socket编程的常用函数 4.1 sockaddr结构体 4.2 socket编程常见函数的功能和使用方法 五. UDP协议实现网络通信 5.…

c语言练习题60:模拟实现atoi

模拟实现atoi 代码&#xff1a; #include<assert.h> #include<stdio.h> #include<ctype.h> #include<limits.h> int my_atoi(const char* str) {assert(str ! NULL);if (*str \0){return 0;}//isspace 判断一个字符是不是空格while (isspace(*str)){…

视频监控系统/安防监控/视频AI智能分析:小动物识别算法场景汇总

随着人们对生态环境的关注日益提升&#xff0c;大家对动物保护意识也逐渐增强。旭帆科技智能分析网关小动物识别算法应运而生。除了对保护动物的识别以外&#xff0c;旭帆科技AI智能分析网关还可以识别常见的老鼠等动物&#xff0c;助力明厨亮灶监管&#xff0c;保卫食品安全。…

一键集成prometheus监控微服务接口平均响应时长

一、效果展示 二、环境准备 prometheus + grafana环境 参考博文:https://blog.csdn.net/luckywuxn/article/details/129475991 三、导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter

JAVAEE:采用HTML和JavaScript实现几个基本的页面

1.实现效果&#xff1a; <html><title>学生信息确认</title><body><Form>用户名:<input typetext id"usename"><br>密码: <input typepassword id"userpwd"><br>性别:<input typeradio id"…

华为云云耀云服务器L实例评测|手把手教你搭建MySQL数据库

1. 前言 本文将为读者介绍华为云的云耀云服务器L实例&#xff0c;并提供一份详细的手把手教程&#xff0c;帮助您快速搭建MySQL数据库。 MySQL是一款常用的关系型数据库管理系统&#xff0c;搭建与配置它对于许多业务应用和网站来说都是必需的。本文将以华为云【云耀云服务器L实…