当前位置: 首页 > news >正文

Spring Boot单体项目整合Nacos

说明:nacos 不一定只能用于微服务架构,单体架构也能使用 Nacos 作为项目云端配置中心,利用 nacos 配置热更新的功能,存储一些需要实时更新的配置。

本文介绍单体项目如何整合 nacos,使用 nacos 的配置中心。

整合

(1)pom.xml

创建一个 Spring Boot 项目,pom.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.13</version><relativePath/></parent><groupId>com.hezy</groupId><artifactId>nacos_demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- Web依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 配置依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2023.0.3.3</version></dependency></dependencies>
</project>

注意 Spring Boot 和 nacos 的版本,有兼容问题

(2)application.yml

application.yml 如下:

server:port: 8080spring:application:name: nacos-democonfig:import:- nacos:nacos-demo.yml?group=demo&namespace=nacos-democloud:nacos:config:enabled: truenamespace: nacos-demoserver-addr: localhost:8848file-extension: ymlgroup: demoimport-check:enabled: false

最后的 import-check: enabled=false 是启动时配置校验,=true 时发现在 nacos 上找不到该服务的配置启动会报错。

(3)云端创建配置

在 nacos 控制台,对应 namespace 下对应的 group 下创建一个配置,配置名(data id)要与项目中配置的服务名与设置的扩展名(yml)一致,如下:

在这里插入图片描述

使用

在代码的 Service 层,读取某个配置项

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Service;@RefreshScope
@Service
public class DemoServiceImpl implements DemoService {@Value("${demo.name}")private String name;@Overridepublic String demo() {return name;}
}

注意类上要加 @RefreshScope 注解,该注解可热更新配置。nacos 配置的内容如下:

在这里插入图片描述

启动项目,调用接口

在这里插入图片描述

修改 nacos 配置值

在这里插入图片描述

再次调用接口,读取的是修改后的配置

在这里插入图片描述

控制台有打印日志

在这里插入图片描述

总结

本文介绍了单体项目使用 Nacos 作为云端配置中心使用,作为注册中心,则引入下面这个依赖

        <!-- 注册依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2023.0.3.3</version></dependency>

配置文件如下:

spring:application:name: nacos-democloud:nacos:discovery:namespace: nacos-demoserver-addr: localhost:8848group: demo
http://www.xdnf.cn/news/1410571.html

相关文章:

  • STAR法则
  • C/C++ 高阶数据结构 —— 二叉搜索树(二叉排序树)
  • 【Linux】系统部分——ELF文件格式与动态库加载
  • 【系统分析师】高分论文:论大数据架构的应用
  • Linux系统比较两个​​已排序文件​​的实用工具之comm
  • 混合润滑表面接触刚度和接触阻尼模型
  • 计算机视觉与深度学习 | 低照度图像处理算法综述:发展、技术与趋势
  • ESP32_实验12_基于光敏传感器的停车场车辆计数系统
  • LeetCode 1855.下标对中的最大距离
  • 基于Python的OCR文字识别系统
  • More Effective C++ 条款19:理解临时对象的来源(Understand the Origin of Temporary Objects)
  • 地信/测绘/遥感就业岗位合集
  • Vue2 与 Vue3 路由钩子的区别及用法详解
  • 事件驱动架构新范式:FastEvent 让领域事件开发变得优雅
  • UVM APB 验证 VIP Agent 逻辑架构与数据流图
  • audioLDM模型代码阅读(三)——变分自编码器VAE
  • LeetCode100-160相交链表【链表介绍】
  • 基于AI的大模型在S2B2C商城小程序中的应用与定价策略自我评估
  • USBX移植(X是eXtended的意思)
  • 【python]变量及简单数据类型
  • Spring Data JPA 派生查询方法命名速查表
  • 平滑滤波器(Smooth Filter)的MATLAB与Verilog仿真设计与实现
  • linux内核trace_begin和trace_end使用分析
  • ICode总线原理
  • 【Bluedroid】A2DP Source 音频传输停止流程及资源管理机制(btif_a2dp_source_stop_audio_req)
  • ESP32学习笔记_Peripherals(5)——SPI主机通信
  • 编写一个名为 tfgets 的 fgets 函数版本
  • FPGA入门指南:从零开始的可编程逻辑世界探索
  • deep seek的对话记录如何导出
  • 【大数据技术实战】流式计算 Flink~生产错误实战解析