【Spring Boot】配置實戰指南:Properties與YML的深度對比與最佳實踐


目錄

1.前言

2.正文

2.1配置文件的格式

2.2properties

2.2.1基礎語法

2.2.2value讀取配置文件

2.2.3缺點

2.3yml

2.3.1基礎語法

2.3.2配置不同數據類型

2.3.3配置讀取

2.3.4配置對象和集合

2.3.5優缺點

2.4綜合練習:驗證碼案例

2.4.1分析需求

2.4.2接口

2.4.3介紹hutool

2.4.4代碼實現

2.4.4.1后端實現

2.4.4.2前端核心實現

3.小結


1.前言

哈嘍大家好吖,在Spring Boot項目中,配置文件是連接代碼與環境的橋梁,直接影響著應用的可維護性和擴展性。面對傳統的Properties格式與新興的YAML格式,開發者該如何選擇?它們的語法差異是什么?如何高效讀取復雜配置?本文將從基礎語法、數據類型支持、配置讀取方式、對象/集合映射等維度,深入解析兩種配置文件的特性,并結合實際代碼演示,助你在項目中做出最合理的技術選型!

2.正文

2.1配置文件的格式

在Spring框架中,配置文件是應用程序的重要組成部分,它允許我們將配置信息從代碼中分離出來,實現配置與代碼的松耦合。Spring支持多種配置文件格式,其中最常用的兩種是:

  1. .properties文件:傳統的鍵值對格式

  2. .yml.yaml文件:基于縮進的層次結構格式

這兩種格式各有優缺點,開發者可以根據項目需求和個人偏好進行選擇。接下來我們將詳細探討這兩種配置格式的特點和使用方法。

2.2properties

2.2.1基礎語法

Properties 文件是 Spring Boot 中最傳統的配置文件格式,采用簡單的?鍵值對(Key-Value)?形式定義配置,語法清晰但靈活性較低。以下是核心語法規則和示例:


鍵值對格式:

每行定義一個配置項,格式為?key=value

  • key?是配置項的唯一標識,支持?.?分隔的層級命名(如?db.url)。

  • value?可以是字符串、數字、布爾值等,默認按字符串處理。

# 示例:數據庫配置
db.url=jdbc:mysql://localhost:3306/test
db.username=root
db.password=123456

注釋:

使用?#?或?!?開頭添加注釋,解釋配置用途:

# 服務器端口配置
server.port=8080
! 開發環境開關
dev.mode=true

特殊字符處理:

  • 若?value?包含空格、等號或冒號,需用反斜杠?\?轉義:

    error.message=參數\ 不能為空!
    special.symbol=key\=value
  • Unicode 字符支持:非 ASCII 字符(如中文)需轉換為 Unicode 編碼:

    greeting=\u4F60\u597D(表示“你好”)

2.2.2value讀取配置文件

在 Spring 中,可通過?@Value?注解或?Environment?對象直接讀取配置值。

1.@Value 注解

  • 直接在字段上使用?@Value("${key}")?注入配置值。

  • 支持設置默認值(當配置項不存在時生效):

    @Component
    public class DatabaseConfig {@Value("${db.url:jdbc:mysql://default}") // 默認值private String url;@Value("${db.username}")private String username;
    }

2.Environment 對象

  • 注入?Environment?對象,通過?getProperty()?動態獲取配置:
    @Autowired
    private Environment env;public void printConfig() {String password = env.getProperty("db.password");Integer port = env.getProperty("server.port", Integer.class); // 自動類型轉換
    }

3.類型轉換

  • 非字符串類型(如整數、布爾值)需手動轉換:
    @Value("${server.port}")
    private int port; // Spring 自動轉換為 int 類型@Value("${feature.enabled:false}") // 默認值 false
    private boolean isEnabled;

2.2.3缺點

盡管 Properties 格式簡單易用,但在復雜項目中存在明顯短板:

1.層級結構缺失

所有配置項平鋪展示,缺乏邏輯分組。

對比示例

# Properties 格式
user.name=Alice
user.age=25
user.address.city=Beijing
# yml 等效配置(結構更清晰)
user:name: Aliceage: 25address:city: Beijing

2.重復前綴冗余

相同前綴的配置需重復書寫,導致冗余:

redis.cache.host=127.0.0.1
redis.cache.port=6379
redis.cache.timeout=30

3.復雜類型支持不足

無法直接定義集合或對象,需手動拆分或借助特殊格式:

# 列表需用逗號分隔,代碼中需手動解析
server.ports=8080,8081,8082# 對象需拆分為多個鍵值對
book.title=Spring Guide
book.author=John Doe

2.3yml

2.3.1基礎語法

YAL是一種以層級縮進為核心的配置文件格式,語法簡潔且可讀性強。以下是核心規則:

層級結構

  • 使用?空格縮進?表示層級關系(禁止用 Tab 鍵)。

  • 同一層級的元素左對齊,縮進空格數需一致。

  • server:port: 8080       # 正確:server 下的子層級縮進 2 空格servlet:context-path: /api  # servlet 的子層級繼續縮進

鍵值對

  • 鍵與值之間用?:?分隔,冒號后必須加?一個空格

  • 字符串默認不加引號,特殊字符(如?:#)可用雙引號包裹。

    name: Spring Boot    # 普通字符串
    version: "3.2.0"     # 引號可省略,但推薦明確
    message: "Hello:World"  # 包含冒號,需用引號

注釋

  • 單行注釋以?#?開頭。

    # 服務器配置
    server:port: 8080  # 開發環境端口

多行文本

  • 用?|?保留換行符,或用?>?折疊換行符。

    description: |       # 保留換行This is amulti-linetext.summary: >           # 折疊為一行(換行符轉空格)This is a single-line text.

2.3.2配置不同數據類型

YML?自動識別數據類型,無需手動轉換,支持以下常見類型:

字符串

path: /api/v1     # 普通字符串
error: "Error: 404\nPage not found."  # 包含冒號和換行符

默認不加引號,特殊字符用雙引號包裹(支持轉義符如?\n)。

數值

int: 100
float: 3.14
scientific: 6.022e23  # 科學計數法

整數、浮點數直接書寫,支持科學計數法。

布爾值

enabled: true
debug-mode: False  # 實際解析為 false

使用?true/false(不區分大小寫)。

日期

create-date: 2023-10-01    # 日期
timestamp: 2023-10-01T12:00:00+08:00  # 日期時間

遵循 ISO 8601 格式,如?yyyy-MM-dd

null 值

description: null
value: ~

用?null?或?~?表示。

2.3.3配置讀取

YML 配置的讀取方式與 Properties 類似,但更推薦對象綁定以發揮層級優勢。

@Value 注解

@Value("${server.port}")
private int port;@Value("${user.name}")
private String userName;

直接注入單個配置值(與 Properties 一致)。

@ConfigurationProperties 綁定對象

# YML 配置
database:url: jdbc:mysql://localhost/testusername: rootpool-size: 10
@Component
@ConfigurationProperties(prefix = "database")
public class DatabaseConfig {private String url;private String username;private int poolSize;  // 支持駝峰命名自動匹配(pool-size → poolSize)// Getter & Setter
}

將層級配置映射到 Java 對象的字段,適合復雜配置。

Environment 對象

@Autowired
private Environment env;public void readConfig() {String url = env.getProperty("database.url");int poolSize = env.getProperty("database.pool-size", Integer.class);
}

動態獲取配置值,支持類型轉換。

2.3.4配置對象和集合

YML 天然支持復雜數據結構的定義,無需拆分鍵名。

對象嵌套

user:name: Aliceage: 25address:       # 嵌套對象city: Beijingstreet: Zhongguancun

Java 實體類綁定:

@ConfigurationProperties(prefix = "user")
public class User {private String name;private int age;private Address address;  // 內部類 Address 需定義 city 和 street 字段
}

通過縮進表示對象層級。

集合(List 和 Map)

# List 示例
servers:- 192.168.1.1- 192.168.1.2# Map 示例(兩種寫法等效)
config:properties: key1: value1key2: value2# 或properties: {key1: value1, key2: value2}

Java 實體類綁定:

@ConfigurationProperties(prefix = "servers")
public class ServerList {private List<String> servers;  // 自動映射 List
}@ConfigurationProperties(prefix = "config")
public class AppConfig {private Map<String, String> properties;  // 自動映射 Map
}

List:用?-?表示列表項。

Map:直接寫鍵值對或使用?{}

2.3.5優缺點

優點

  1. 結構清晰:層級縮進直觀展示配置關系,適合復雜業務場景。

  2. 類型豐富:自動識別字符串、數值、布爾值、日期等類型。

  3. 代碼簡潔:通過?@ConfigurationProperties?一鍵綁定對象,減少冗余代碼。

  4. 多行文本支持:無需拼接符即可定義長文本。

缺點

  1. 縮進敏感:縮進錯誤(如混用空格和 Tab)會導致解析失敗。

  2. 兼容性限制:舊版本 IDE 或工具可能不支持 YAML(需安裝插件)。

  3. 學習成本:對新手來說,層級規則和語法細節需時間熟悉。

2.4綜合練習:驗證碼案例

源碼:src/main/java/captcha · 愛吃烤雞翅的酸菜魚/springboot學習 - 碼云 - 開源中國 https://gitee.com/crjs-hao/springboot/tree/master/src/main/java/captcha

2.4.1分析需求

  1. 頁面生成驗證碼。
  2. 輸入驗證碼,點擊提交,驗證用戶輸入驗證碼是否正確,正確則進行頁面跳轉。

2.4.2接口

1. 生成驗證碼

請求URL/captcha/getCaptcha
響應:驗證碼圖片內容
說明:瀏覽器向服務器發送/captcha/getCaptcha請求,服務器返回驗證碼圖片并在瀏覽器頁面顯示。

2. 校驗驗證碼是否正確

請求URL/captcha/check
請求參數captcha=xn8d
參數說明captcha為用戶輸入的驗證碼。
響應truefalse
說明:根據用戶輸入的驗證碼校驗是否正確,true表示驗證成功,false表示驗證失敗。?

2.4.3介紹hutool

官網:Hutool🍬一個功能豐富且易用的Java工具庫

官方文檔:簡介 | Hutool

特點:

??簡單易用:方法命名直觀,API 設計友好,降低學習成本。
??功能全面:涵蓋 Java 開發中的常見工具需求,減少依賴第三方庫。
??高性能:優化底層實現,避免重復造輪子。
??模塊化設計:可按需引入特定模塊,避免項目臃腫。

maven引入依賴:

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version> <!-- 使用最新版本 -->
</dependency>

2.4.4代碼實現

代碼結構:

先配置好yml文件:

spring:application:name: springboot
captcha:width: 150height: 50session:key: CAPTCHA_SESSION_KEYdate: CAPTCHA_SESSION_DATE

2.4.4.1后端實現

@RequestMapping("/captcha")
@RestController
public class CaptchaController {@Autowiredprivate CaptchaPropertities captchaPropertities;private final static Long VALID_TIME = 30 * 60 * 1000L;@RequestMapping("/getCaptcha")public void getCaptcha(HttpServletResponse response, HttpSession session){response.setContentType("image/jpg");response.setCharacterEncoding("utf-8");//生成驗證碼try {ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(captchaPropertities.getWidth(), captchaPropertities.getHeight());String code = captcha.getCode();session.setAttribute(captchaPropertities.getSession().getKey(), code);session.setAttribute(captchaPropertities.getSession().getDate(), new Date());captcha.write(response.getOutputStream());} catch (IOException e) {e.printStackTrace();}
//        }finally {
//            response.getOutputStream().close();
//        }}/*** 驗證用戶輸入的驗證碼是否正確* @param captcha: 用戶輸入的驗證碼* @param session* @return false: 校驗失敗, true: 成功*/@RequestMapping("/check")public boolean check(String captcha,HttpSession session){if(!StringUtils.hasLength(captcha)){return false;}String code = (String) session.getAttribute(captchaPropertities.getSession().getKey());Date date = (Date) session.getAttribute(captchaPropertities.getSession().getDate());//驗證碼正確且沒有過期if(captcha.equalsIgnoreCase(code) && date != null && System.currentTimeMillis() - date.getTime() < VALID_TIME){return true;}return false;}
}

?1. 驗證碼生成流程 (/getCaptcha)

  1. 初始化響應

    • 設置響應類型為圖片 (image/jpg) 和字符編碼 (utf-8)。

  2. 生成驗證碼

    • 使用 Hutool 的?ShearCaptcha?工具生成指定寬高的圖形驗證碼。

    • 獲取驗證碼文本 (code) 并存入 Session,同時記錄生成時間。

  3. 返回驗證碼圖片

    • 將驗證碼圖片寫入響應輸出流,供前端顯示。

  4. 異常處理

    • 捕獲并打印?IOException,確保生成失敗時不影響程序運行。


2. 驗證碼校驗流程 (/check)

  1. 參數檢查

    • 檢查用戶輸入的驗證碼是否為空,若空則直接返回?false

  2. Session 驗證

    • 從 Session 中獲取存儲的驗證碼文本 (code) 和生成時間 (date)。

  3. 校驗邏輯

    • 驗證碼正確性:忽略大小寫比較用戶輸入與 Session 中的驗證碼。

    • 時效性檢查:驗證碼需在有效期內(30 分鐘內)。

  4. 返回結果

    • 若驗證碼正確且未過期,返回?true;否則返回?false


3. 關鍵設計點

  • Session 存儲:驗證碼文本和生成時間通過 Session 共享,確保安全性和狀態管理。

  • 時效控制:通過?VALID_TIME(30 分鐘)限制驗證碼有效期,增強安全性。

  • 工具庫集成:利用 Hutool 的?CaptchaUtil?快速生成圖形驗證碼,簡化開發。

package captcha.model;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;@ConfigurationProperties(prefix = "captcha")
@Configuration
@Data
public class CaptchaPropertities {private Integer width;private Integer Height;private Session session;@Datapublic static class Session{private String key;private String date;}
}

1. 核心作用

這是一個基于Spring Boot的配置屬性綁定類,主要功能是:

  • 集中管理驗證碼相關的所有配置參數

  • 實現配置與代碼的分離,提高靈活性和可維護性


2. 關鍵設計

  1. 配置綁定

    • 使用@ConfigurationProperties注解綁定配置文件中的屬性

    • prefix="captcha"表示所有配置以captcha為前綴

  2. 配置分組

    • 主配置項:驗證碼圖片的widthHeight

    • 嵌套配置:通過內部類Session管理session相關的配置項

  3. 自動配置

    • @Configuration使該類成為Spring配置類

    • @Data自動生成getter/setter等方法

2.4.4.2前端核心實現

<script>$("#Img").click(function () {$(this).hide().attr('src', '/captcha/getCaptcha?dt=' + new Date().getTime()).fadeIn();});$("#checkCaptcha").click(function () {$.ajax({type: "post",url: "/captcha/check",data: {captcha: $("#inputCaptcha").val()},success: function(result){if(result){location.href = "success.html";}else {alert("驗證碼錯誤, 請重新輸入");}}});});</script>

1. 驗證碼刷新功能

實現方式

  • 通過jQuery的click事件綁定圖片點擊事件

  • 點擊時先隱藏圖片,然后修改src屬性(添加時間戳防止緩存),最后淡入顯示

技術要點

  • 使用new Date().getTime()添加時間戳參數,強制瀏覽器重新請求圖片

  • hide()fadeIn()實現平滑的視覺過渡效果

2. 驗證碼校驗功能

實現方式

  • 通過AJAX POST請求發送用戶輸入的驗證碼到服務端校驗

  • 根據返回結果進行頁面跳轉或錯誤提示

技術要點

  • 使用jQuery的$.ajax方法發送異步請求

  • 成功回調中根據服務端返回的布爾值進行不同處理

  • location.href實現驗證成功后的頁面跳轉

3. 整體交互流程

  1. 用戶點擊驗證碼圖片 → 刷新驗證碼

  2. 用戶輸入驗證碼并點擊校驗按鈕 → 發送AJAX請求

  3. 服務端返回校驗結果 → 前端根據結果跳轉或提示

4. 安全性考慮

  • 時間戳參數防止瀏覽器緩存驗證碼圖片

  • POST請求方式避免驗證碼出現在URL中

  • 服務端校驗結果決定后續操作

3.小結

今天的分享到這里就結束了,喜歡的小伙伴點點贊點點關注,需要所有的源代碼可以去我的gitee上就可以啦~你的支持就是對我最大的鼓勵,大家加油!

另外最后的最后,歡迎大家加入我的社區哦,初創社區難免經驗不足,請大家多多包涵,也歡迎大家前來多多交流。

愛吃烤雞翅的酸菜魚社區-CSDN社區云 https://bbs.csdn.net/forums/aaa1f71356f6475db42ea9ea09a392bc?spm=1001.2014.3001.6682

?

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

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

相關文章

20250519使用TF卡將NanoPi NEO core開發板刷機為Ubuntu core22.04.3系統完成之后執行poweroff自動關機

1、h3-sd-friendlycore-xenial-4.14-armhf-20210618.img.gz 在WIN10下使用7-ZIP解壓縮/ubuntu20.04下使用tar 2、Win32DiskImager.exe 寫如32GB的TF卡。【以管理員身份運行】 3、TF卡如果已經做過會有3個磁盤分區&#xff0c;可以使用SD Card Formatter/SDCardFormatterv5_WinE…

編譯Qt5.15.16并啟用pdf模塊

編譯Qt5.15.16并啟用pdf模塊 標題1.目錄設置 -q-bulid –qt-everywhere-src-5.15.16 –bulid cd bulid 必須&#xff0c;否則會提示Project ERROR: You cannot configure qt separately within a top-level build. create .qmake.stash and .qmake.super in build folder …

“智”斗秸稈焚燒,考拉悠然以科技之力筑牢生態安全防線

清晨&#xff0c;薄霧籠罩著遼闊的田野&#xff0c;農民們開始了一天的勞作。然而&#xff0c;隨著收割季的到來&#xff0c;秸稈焚燒問題也逐漸浮現&#xff0c;成為威脅空氣質量與生態安全的隱患。傳統監管方式往往顯得力不從心&#xff0c;效率低下的困境亟待突破。在此背景…

Nockchain項目部署教程

Nockchain頭礦窗口正在打開&#xff0c;不拼設備&#xff0c;現在部署&#xff0c;馬上就要開挖了。 一、項目介紹 Nockchain 是結合了POW和ZKVM的區塊鏈協議。 主要特點&#xff1a; 1&#xff09;計算存儲新域名空間三位一體架構&#xff0c;高吞吐量 2&#xff09;使用No…

2025年氣候持續大風,消納減少,如何保收益?東潤能源整體解決方案持續保收益保增長

引言 隨著全球氣候變化加劇,2025年極端天氣頻發,風資源豐富但電網消納能力不足的問題日益突出,導致許多風電項目面臨限電、收益下滑的挑戰。如何在復雜的氣候和電力市場環境下保障投資收益,成為行業關注的焦點。東潤能源憑借領先的技術創新和綜合能源解決方案,為風電行業…

2023河南CCPC省賽vp部分補題

A 模擬 暴力 對每個合法的前綴&#xff0c;判斷后綴是不是合法 int a[29]; void solve(){string s;cin>>s;int t-1;if(s.size()1){return cout<<"NaN"<<endl,void();}for(int i0;i<27;i) a[i]0;for(int i0;i<s.size();i){a[s[i]-a];if(…

【2025保姆級】Open-WebUI五大功能區首曝!第一篇:管理員面板深度拆解,手把手講解配置AI管理中樞

【2025保姆級】Open-WebUI五大功能區首曝&#xff01;第一篇&#xff1a;管理員面板深度拆解&#xff0c;手把手講解&配置AI管理中樞 一、引言二、用戶2.1 概述2.2 權限組 三、競技場評估四、函數五、設置5.1 通用5.1.1 身份驗證5.1.2 功能 5.2 外部連接5.2.1 OpenAI API5.…

docker上傳鏡像

向Docker Hub上傳鏡像&#xff0c;需要按照一定的步驟進行操作。 Docker Hub是Docker的官方鏡像倉庫&#xff0c;用戶可以在其中存儲、管理和部署Docker鏡像。要向Docker Hub上傳鏡像&#xff0c;請遵循以下步驟&#xff1a; 創建Docker Hub賬戶&#xff1a; 訪問Docker Hub官…

(十三)深入了解AVFoundation-采集:視頻幀采集與實時濾鏡處理

引言 在移動應用中&#xff0c;實時視頻處理已成為視頻拍攝、短視頻、直播、美顏相機等功能的核心技術之一。從簡單的濾鏡疊加&#xff0c;到復雜的美顏、AR 特效&#xff0c;背后都離不開對每一幀圖像的高效采集與處理。在前幾篇文章中&#xff0c;我們已經實現了基本的視頻采…

數字政務安全實戰:等保2.0框架下OA系統防護全解析

近期在Python基礎教學領域深入鉆研函數機制、數據結構優化等內容時&#xff0c;深刻意識到信息安全作為技術基石的戰略價值。在政務數字化轉型浪潮中&#xff0c;Python憑借其高擴展性與豐富的安全生態庫&#xff0c;成為構建政務OA系統安全防護體系的核心工具。本文將以等保2.…

Pytorch項目實戰-2:花卉分類

一、前言 在深度學習項目中&#xff0c;數據集的處理和模型的訓練、測試、預測是關鍵環節。本文將為小白詳細介紹從數據集搜集、清洗、劃分到模型訓練、測試、預測以及模型結構查看的全流程&#xff0c;附帶代碼和操作說明&#xff0c;讓你輕松上手&#xff01; 二、數據集 …

React Flow 邊事件處理實戰:鼠標事件、鍵盤操作及連接規則設置(附完整代碼)

本文為《React Agent&#xff1a;從零開始構建 AI 智能體》專欄系列文章。 專欄地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。項目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代碼示?例與實戰源&#xff09;。完整介紹…

java小結(一)

java&#xff08;上&#xff09; 模塊一 1.JDK,JRE,JVM 知識點 核心內容 易混淆點 JDK定義 Java Development Kit&#xff08;Java開發工具包&#xff09;&#xff0c;包含開發所需全部工具 JDK包含JRE的關系容易混淆 JRE定義 Java Runtime Environment&#xff08;Jav…

ddns-go安裝介紹-強大的ipv6動態域名解析神器-家庭云計算專家

ddns-go 是一款輕量級開源動態域名解析工具&#xff0c;專注于解決動態IP環境下的域名綁定問題&#xff0c;尤其適配IPv6網絡環境。其核心功能包括&#xff1a; 1.IPv6動態解析&#xff1a;自動檢測本地IPv6地址變化&#xff08;支持網卡、接口或命令獲取&#xff09;&#xf…

Docker-mongodb

拉取 MongoDB 鏡像: docker pull mongo 創建容器并設置用戶&#xff1a; 要掛載本地數據目錄&#xff0c;請替換此路徑: /Users/Allen/Env/AllenDocker/mongodb/data/db docker run -d --name local-mongodb \-e MONGO_INITDB_ROOT_USERNAMEadmin \-e MONGO_INITDB_ROOT_PA…

WooCommerce緩存教程 – 如何防止緩存破壞你的WooCommerce網站?

我們在以前的文章中探討過如何加快你的WordPress網站的速度&#xff0c;并研究過各種形式的緩存。 然而&#xff0c;像那些使用WooCommerce的動態電子商務網站&#xff0c;在讓緩存正常工作方面往往會面臨重大挑戰。 在本指南中&#xff0c;我們將告訴你如何為WooCommerce設置…

貪心算法 Part04

總結下重疊區間問題 LC 452. 用最少數量的箭引爆氣球 和 LC 435. 無重疊區間 本質上是一樣的。 LC 452. 用最少數量的箭引爆氣球 是求n個區間當中 &#xff0c; 區間的種類數量 k。此處可以理解為&#xff0c;重疊在一起的區間屬于同一品種&#xff0c;沒有重疊的區間當然…

云原生CD工具-Argocd+ArgoRollout入門到精通

第一章 Argo CD簡介 課時1.1 Argo產品介紹 ARGO官網地址:https://argoproj.github.io/ 旗下產品有: Argo Workflows、ArgoCD 、Argo Rollouts 、Argo Events 課時1.2 什么是Argo CD Argo CD 是一個開源的持續交付工具, 是 Kubernetes 的聲明式 GitOps 持續交付工具。專…

數據分析與應用---數據可視化基礎

目錄 Matplotlib基礎繪圖 (一)、pyplot繪圖基礎語法與常用參數 1、pyplot基礎語法 (1) 創建畫布與創建子圖 (2) 添加畫布內容 (3) 保存與顯示圖形 案例代碼 2. 設置pyplot的動態rc參數 (二)、使用Matplotlib繪制進階圖形 1. 繪制散點圖----scatter 2. 繪制折線…

PP-YOLOE-SOD學習筆記1

項目&#xff1a;基于PP-YOLOE-SOD的無人機航拍圖像檢測案例全流程實操 - 飛槳AI Studio星河社區 一、安裝環境 先準備新環境py>3.9 1.先cd到源代碼的根目錄下 2.pip install -r requirements.txt 3.python setup.py install 這一步需要看自己的GPU情況&#xff0c;去飛漿…