Spring Boot + Nacos 配置中心示例工程

1?? 工程結構

nacos-demo├── pom.xml└── src├── main│   ├── java│   │   └── com.example.nacosdemo│   │       ├── NacosDemoApplication.java│   │       ├── config│   │       │   └── AppProperties.java│   │       └── controller│   │           └── HelloController.java│   └── resources│       └── bootstrap.yml

2?? pom.xml

使用 Spring Boot + Spring Cloud Alibaba Nacos Config 依賴:

<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>nacos-demo</artifactId><version>1.0.0</version><properties><java.version>17</java.version><spring.boot.version>3.2.5</spring.boot.version><spring.cloud.version>2023.0.1</spring.cloud.version><spring.cloud.alibaba.version>2023.0.1.0</spring.cloud.alibaba.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring.boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><!-- Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Nacos Config --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- 方便調試 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies>
</project>

3?? bootstrap.yml

bootstrap.yml 會在應用啟動早期加載,確保 Nacos 配置優先注入:

spring:application:name: nacos-democloud:nacos:config:server-addr: 127.0.0.1:8848namespace: publicgroup: DEFAULT_GROUPfile-extension: yamlrefresh-enabled: truemanagement:endpoints:web:exposure:include: "*"

4?? 配置類 AppProperties.java

package com.example.nacosdemo.config;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;@Component
@RefreshScope // 支持動態刷新
@ConfigurationProperties(prefix = "app")
public class AppProperties {private String message = "default message";public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}

5?? 控制器 HelloController.java

package com.example.nacosdemo.controller;import com.example.nacosdemo.config.AppProperties;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {private final AppProperties appProperties;public HelloController(AppProperties appProperties) {this.appProperties = appProperties;}@GetMapping("/hello")public String hello() {return "Message from Nacos: " + appProperties.getMessage();}
}

6?? 啟動類 NacosDemoApplication.java

package com.example.nacosdemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class NacosDemoApplication {public static void main(String[] args) {SpringApplication.run(NacosDemoApplication.class, args);}
}

7?? Nacos 配置中心添加配置

在 Nacos 控制臺添加一個配置:

  • Data ID: nacos-demo.yaml(與 spring.application.name + .yaml 對應)
  • Group: DEFAULT_GROUP
  • 內容
app:message: Hello from Nacos!

8?? 啟動與測試

  1. 啟動本地 Nacos(默認端口 8848)
  2. 啟動 Spring Boot 應用
  3. 訪問 http://localhost:8080/hello → 返回 Message from Nacos: Hello from Nacos!
  4. 在 Nacos 控制臺修改 app.message → 保存
  5. 再次訪問 /hello,無需重啟應用即可看到新值(因為 @RefreshScope + refresh-enabled: true

? 總結
這個示例展示了:

  • @ConfigurationProperties 從 Nacos 拉取配置
  • @RefreshScope 支持動態刷新
  • bootstrap.yml 提前加載遠程配置
  • 最小依賴組合,直接可運行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97836.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(二)文件管理-基礎命令-pwd命令的使用

文章目錄1. 命令格式2. 基本用法3. 高級用法4. 注意事項1. 命令格式 pwd [OPTION]...[OPTION]: 可選選項&#xff0c;用于改變命令的默認行為。最主要的兩個選項是 -L 和 -P。它不需要任何參數&#xff08;如文件名或目錄名&#xff09; 2. 基本用法 用法&#xff1a;pwd 是…

Leetcode_202.快樂數_三種方法解決(普通方法解決,哈希表解決,循環鏈表的性質解決_快慢指針)

目錄第一種方法&#xff1a;暴力解法暴力ac代碼&#xff1a;第二種方法&#xff1a;哈希表哈希表ac代碼:第三種方法&#xff1a;根據循環鏈表的性質(快慢指針)第一種方法&#xff1a;暴力解法 最暴力的思路就是直接使用循環往下一直計算&#xff0c;這樣特別浪費時間&#xff…

代碼隨想錄刷題Day48

這次博客主要是對做過的關于二叉樹系列的題目進行整理和分類。二叉樹&#xff0c;要處理整個樹&#xff0c;一般少不了遍歷。遍歷主要可以分為&#xff1a;遞歸系列、層序遍歷。如果不遍歷的話&#xff0c;那就是處理特殊的樹了&#xff0c;比如完全二叉樹。遞歸系列基本的遞歸…

汽車工裝結構件3D掃描尺寸測量公差比對-中科米堆CASAIM

汽車制造過程中&#xff0c;工裝結構件的尺寸精度對整車裝配質量和生產進度有重要影響。傳統測量工具如卡尺和三坐標測量機采用接觸式工作方式&#xff0c;檢測過程耗時較長&#xff0c;對于具有復雜曲面特征的工件&#xff0c;難以全面獲取尺寸數據。激光三維掃描技術改變了傳…

Docker Pull 代理配置方法

本文介紹通過網絡代理加速Docker鏡像拉取的方法。 配置方法 當執行docker pull從Docker Hub 拉取鏡像時&#xff0c;其網絡連接由守護進程docker daemon進行維護。 要修改其代理設置&#xff0c;可配置其systemd服務&#xff0c;步驟如下&#xff1a; &#xff08;1&#xf…

機電裝置:從基礎原理到前沿應用的全方位解析

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 1 機電裝置的基本概念與發展歷程 機電裝置&#xff08;Mechatronic D…

《SVA斷言系統學習之路》【03】關于布爾表達式

序列中使用的表達式基于其所含變量的采樣值進行評估。表達式評估的結果為布爾值&#xff0c;其解釋方式與過程性if語句條件中的表達式完全相同&#xff1a;若表達式計算結果為X、Z 或 0&#xff0c;則被解釋為假&#xff1b;否則即為真。但是&#xff0c;對可出現在并發斷言中的…

指針高級(2)

6.數組指針#include <stdio.h> int main() {/*練習&#xff1a;利用指針遍歷數組*///1.定義數組int arr[] { 10,20,30,40,50 };int len sizeof(arr) / sizeof(int);//2.獲取數組的指針//實際上獲取的&#xff1a;數組的首地址int* p1 arr;int* p2 &arr[0];printf…

如何高效記單詞之:抓住首字母——以find、fund、fond、font為例

find、fund、fond、font這幾個單詞&#xff0c;你都認識嗎&#xff1f;這幾個單詞&#xff0c;意思大體如下&#xff1a; find v.找到&#xff1b;發現fund n.基金fond a.喜歡的&#xff1b;喜愛的&#xff1b;深情的font n.字體&#xff0c;字型&#xff0c;字形 這幾個單詞在…

Ubuntu下把 SD 卡格式化為 FAT32

在 Ubuntu 下把 SD 卡格式化為 FAT32&#xff0c;按下面做&#xff08;會抹掉整卡數據??&#xff09;&#xff1a; 1) 找到你的 SD 卡設備名 lsblk -p記下整盤設備&#xff0c;比如 /dev/sdb&#xff08;USB 讀卡器常見&#xff09;或 /dev/mmcblk0&#xff08;內置讀卡器&am…

涉私數據安全與可控匿名化利用機制研究(上)

文章目錄前言一、涉私數據的概述及分類&#xff08;一&#xff09;涉私數據的“知情同意原則”&#xff08;二&#xff09;涉私數據的分類二、涉私數據可控匿名化利用機制&#xff08;一&#xff09;數據產品與涉私數據的利用形式&#xff08;二&#xff09;通過可信數據空間受…

Redis 的跳躍表:像商場多層導航系統一樣的有序結構

目錄 一 、從 "超市貨架" 的痛點看跳躍表的價值 1.1、跳躍表與商場導航系統的結構對應 1. 1.1、zskiplistNode&#xff1a;帶導航標記的 "商品"&#xff08;跳躍表節點&#xff09; 1.1.1.1、level []&#xff1a;商品上的多層導航標記 1.1.1.2、back…

小程序點擊之數據綁定

<return /><view class"all-wrap" style"padding-top:{{topHeight}}px;"><view class"my-title">我的收藏</view><scroll-viewclass"collect-list-container"scroll-yscroll-top"{{scrollTop}}"…

數據結構——順序表和單向鏈表(2)

目錄 前言 一、單向鏈表 1、基本概念 2、單向鏈表的設計 &#xff08;1&#xff09;節點設計 &#xff08;2&#xff09;初始化空單向鏈表 &#xff08;3&#xff09;、初始化數據節點 &#xff08;4&#xff09;數據節點 &#xff08;5&#xff09;判斷鏈表是否為空 …

More Effective C++ 條款26:限制某個類所能產生的對象數量

More Effective C 條款26&#xff1a;限制某個類所能產生的對象數量核心思想&#xff1a;通過控制類的實例化過程&#xff0c;限制程序中該類的對象數量&#xff0c;可以防止資源過度使用&#xff0c;確保系統資源合理分配&#xff0c;并實現單例或有限實例模式。 &#x1f680…

CMS系統維護中常見的安全威脅及防護指南!

內容管理系統&#xff08;CMS&#xff09;已成為網站建設的核心工具&#xff0c;但隨之而來的安全風險卻常被低估。超過70%的網站使用CMS構建&#xff0c;而其中近半數曾遭遇安全漏洞威脅。作為運維人員和開發者&#xff0c;了解這些安全威脅并采取相應防護措施至關重要。 一、…

springboot knife4j 接口文檔入門與實戰

Spring Boot3 Knife4j 項目地址https://gitee.com/supervol/loong-springboot-study&#xff08;記得給個start&#xff0c;感謝&#xff09;Knife4j 介紹在國內 Java 開發領域&#xff0c;Knife4j 是一款廣受歡迎的 API 文檔工具&#xff0c;它基于 OpenAPI 規范&#xff0c;在…

Spring Boot 事務失效的八大原因及解決方案詳解

在 Spring Boot 項目開發中&#xff0c;聲明式事務管理通過 Transactional 注解提供了極大的便利。但許多開發者都曾遇到過事務不生效的困擾。本文將詳細分析導致 Spring Boot 事務失效的八大常見情況&#xff0c;并提供相應的解決方案。1. 數據庫引擎不支持事務問題分析&#…

數據結構:順序棧與鏈棧的原理、實現及應用

數據結構詳解&#xff1a;順序棧與鏈棧的原理、實現及應用 1. 引言&#xff1a;棧的核心概念 棧&#xff08;Stack&#xff09;是一種重要的線性數據結構&#xff0c;它遵循后進先出&#xff08;Last In First Out, LIFO&#xff09;的原則。這意味著最后一個被添加到棧中的元素…

apipost 8.x 腳本循環調用接口

apipost 8.x 腳本循環調用接口背景實現先說整體邏輯&#xff1a;最后背景 上周為了找某OA 偶爾出現的詭異現象&#xff0c;需要用測試工具來壓測&#xff0c;看看這個問題能否重現。以前用過Jmeter&#xff0c;但是沒有裝&#xff0c;正好有個國產的apipost看看如何&#xff1…