6.19_JAVA_微服務

1、跑后端的時候要把數據庫跑起來,否則會報錯。

2、predicate斷言:

?預言:predict

3、gateway:出路口

4、API:List.of("a", "b", "c");把abc編程一個集合。

5、

?6、shortcutFieldOrder定義了yaml的順序:

?7、思考以下問題,為什么PrintAnyGatewayFilterFactory類沒有直接調用getConfigClass類,卻保留了下來?

答案:因為它們是通過Spring Cloud Gateway 框架內部機制?完成的


@Component
public class PrintAnyGatewayFilterFactory // 父類泛型是內部類的Config類型extends AbstractGatewayFilterFactory<PrintAnyGatewayFilterFactory.Config> {@Overridepublic GatewayFilter apply(Config config) {// OrderedGatewayFilter是GatewayFilter的子類,包含兩個參數:// - GatewayFilter:過濾器// - int order值:值越小,過濾器執行優先級越高return new OrderedGatewayFilter(new GatewayFilter() {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 獲取config值String a = config.getA();String b = config.getB();String c = config.getC();// 編寫過濾器邏輯System.out.println("a = " + a);System.out.println("b = " + b);System.out.println("c = " + c);// 放行return chain.filter(exchange);}}, 100);}// 自定義配置屬性,成員變量名稱很重要,下面會用到@Datastatic class Config{private String a;private String b;private String c;}// 將變量名稱依次返回,順序很重要,將來讀取參數時需要按順序獲取@Overridepublic List<String> shortcutFieldOrder() {return List.of("a", "b", "c");}// 返回當前配置類的類型,也就是內部的Config@Overridepublic Class<Config> getConfigClass() {return Config.class;}}

8、這是個啥?

GatewayFilter?是一個?接口(Interface),正常情況下接口不能直接?new,必須提供實現類。
但通過?匿名內部類,你可以?直接實現接口的方法,而不用單獨寫一個類文件。

相當于是:GatewayFilterEntity gatewayFilterEntity

9、ServerWebExchange exchange包含:exchange.getRequest()、exchange.getResponse()、exchange.getAttributes()、exchange.mutate()

?

(exchange, chain) -> {                     //例// 示例1:獲取請求頭String token = exchange.getRequest().getHeaders().getFirst("Authorization");// 示例2:修改請求路徑ServerWebExchange newExchange = exchange.mutate().request(builder -> builder.path("/new-path")).build();// 示例3:攔截請求(直接返回響應)exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();
}

10、exchange更偏向功能類。chain更多是用來鏈接多個要過濾的內容,比如過濾掉1、2、3、4、5就需要chain鏈接起來。

11、

//全局生效:放在gateway底下:
spring:cloud:gateway:default-filters:- PrintAny=1,2,3  # 全局生效routes:- id: itemuri: lb://item-servicepredicates:- Path=/items/**                  */- id: carturi: lb://cart-servicepredicates:- Path=/carts/**                  *///局部生效:放在id底下:
spring:cloud:gateway:routes:- id: itemuri: lb://item-servicepredicates:- Path=/items/**                   */filters:- PrintAny=1,2,3  # 僅對/item路由生效- id: carturi: lb://cart-servicepredicates:- Path=/carts/**                   

12、default-filters版的GateFilter和GlobalFilter有啥區別?

13、JWT(JSON Web Token):登錄時候需要

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

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

相關文章

Linux 基礎命令:`ls`、`cd`、`du` 快速入門

在 Linux 系統中&#xff0c;ls、cd 和 du 是日常操作中最常用的三個命令。掌握它們能大幅提升文件管理效率。 1. ls&#xff1a;查看目錄內容 用途&#xff1a;列出當前或指定目錄下的文件和子目錄。 常用命令&#xff1a; ls -l # 詳細列表&#xff08;權限、大…

408第一季 - 數據結構 - 散列表

散列表 概念 散列表本身就是為了查找 原始人思想 散列表思想 6%5 是 1 1%5 也是1 沖突 沖突怎么辦&#xff1f; 線性探測法 就往后找&#xff0c;1跑到索引為2 然后查找&#xff0c;可以發現&#xff0c;只要沒沖突就只用查找1次 然后你想找10的話&#xff0c;發現索引為0…

Spring Boot 集成 Elasticsearch(含 ElasticsearchRestTemplate 示例)

Elasticsearch 是一個基于 Lucene 的分布式搜索服務器&#xff0c;具有高效的全文檢索能力。在現代應用中&#xff0c;尤其是需要強大搜索功能的系統中&#xff0c;Elasticsearch 被廣泛使用。 Spring Boot 提供了對 Elasticsearch 的集成支持&#xff0c;使得開發者可以輕松地…

CMake實踐:指定gcc版本編譯和交叉編譯

目錄 1.指定gcc版本編譯 1.1.通過CMake參數來實現 1.2.使用 RPATH/RUNPATH 直接指定庫路徑 1.3.使用符號鏈接和 LD_LIBRARY_PATH 1.4.使用 wrapper 腳本封裝 LD_LIBRARY_PATH 2.交叉編譯 2.1.基本用法 2.2.工具鏈文件關鍵配置 2.3.多平臺工具鏈示例 2.4.注意事項 2.…

詳解鴻蒙Next倉頡開發語言中的全屏模式

大家好&#xff0c;今天跟大家分享一下倉頡開發語言中的全屏模式。 和ArkTS一樣&#xff0c;倉頡的新建項目默認是非全屏模式的&#xff0c;如果你的應用顏色比較豐富&#xff0c;就會發現屏幕上方和底部的留白&#xff0c;這是應用自動避讓了屏幕上方攝像頭區域和底部的導航條…

LoRA 淺析

1. 核心思想 LoRA 是一種參數高效的微調方法&#xff0c;旨在減少微調大型語言模型 (LLMs) 所需的計算資源和存儲空間。其核心思想是&#xff1a; 凍結預訓練模型權重&#xff1a; 在微調過程中&#xff0c;保持預訓練 LLM 的原始權重不變。引入低秩矩陣&#xff1a; 對于 LL…

軟件范式正在經歷第三次革命

核心主題&#xff1a;軟件范式正在經歷第三次根本性革命&#xff08;軟件3.0&#xff09;&#xff0c;其核心是“智能體”&#xff08;Agent&#xff09;&#xff0c;未來十年將是“智能體的十年”。 邏輯模塊解析&#xff1a; 軟件的三次重生革命 軟件1.0&#xff1a; 傳統編…

JavaScript 變量與運算符全面解析:從基礎到高級應用

昨天學長說可以放緩一下學習進度,剛好最近期末復習也不是很緊張,所以來重新復習一下js的一些知識點。 一&#xff1a;變量 &#xff08;1&#xff09;變量聲明 來簡單看一下變量的一些知識點。首先是變量聲明&#xff1a;變量聲明盡量使用數組字母下劃線 來舉幾個例子&#x…

移動語義對性能優化的具體示例

前言 本文章對比了&#xff1a;小中大字符串在普通傳值、傳值移動、傳左值引用、傳右值引用、模板完美轉發、內聯版本等多種測試&#xff0c;對比各個方式的性能優異&#xff1a; 測試代碼1 #include <iostream> #include <string> #include <chrono> #incl…

C/C++ 和 OpenCV 來制作一個能與人對弈的實體棋盤機器人

項目核心架構 整個系統可以分為四個主要模塊&#xff1a; 視覺感知模塊 (Vision Perception Module): 任務: 使用攝像頭“看懂”棋盤。工具: C, OpenCV。功能: 校準攝像頭、檢測棋盤邊界、進行透視變換、分割 64 個棋盤格、識別每個格子上的棋子、檢測人類玩家的走法。 決策模…

SpringBoot擴展——日志管理!

Spring Boot擴展 在Spring Boot中可以集成第三方的框架如MyBatis、MyBatis-Plus和RabbitMQ等統稱為擴展。每一個擴展會封裝成一個集成&#xff0c;即Spring Boot的starter&#xff08;依賴組件&#xff09;。starter是一種非常重要的機制&#xff0c;不需要煩瑣的配置&#xf…

【JSON-To-Video】AI智能體開發:為視頻圖片元素添加動效(滑入、旋轉、滑出),附代碼

各位朋友們&#xff0c;大家好&#xff01; 今天要教大家如何在 JSON - To - Video 中為視頻內圖片元素添加滑入、旋轉、滑出的動效。 如果您還不會封裝制作自己的【視頻工具插件】&#xff0c;歡迎查看之前的教程&#xff01; AI智能體平臺&#xff0c;如何封裝自定義短視頻…

Spring Boot(九十二):Spring Boot實現連接不上數據庫就重啟服務

場景: 在線上部署時,若服務器因斷電等原因意外重啟,項目及其依賴的數據庫服務通常需要配置為自動啟動。此時,如果數據庫服務啟動較慢或失敗,Spring Boot 項目會因無法建立數據庫連接而啟動失敗。 需求: 為確保項目啟動成功,需要讓 Spring Boot 項目等待數據庫服務完全就…

Debian配置Redis主從、哨兵

前言 Redis的下載安裝可參考Centos安裝配置Redis6.x&#xff0c;Centos和Debian的步驟基本類似&#xff0c;或自行在網上搜索相關資料 注意&#xff1a;遠程連接需放開相應端口 主從 搭建一個一主二從的主從模式 處理conf文件 #進入redis所在目錄 cd /tools/redis/redis6 …

虛實交融:數字孿生如何重塑交通與公路勘察設計的未來

當每一條道路、每一座橋梁、每一盞信號燈都在數字世界獲得“永生副本”&#xff0c;交通系統從被動響應邁入主動預演的紀元 一、數字孿生的核心定義&#xff1a;超越鏡像的動態認知引擎 數字孿生&#xff08;Digital Twin&#xff09;并非簡單的三維可視化模型&#xff0c;而是…

vector模擬實現中的迭代器失效問題

首先來看一組代碼&#xff1a; iterator insert(iterator pos, const T& x) {// 擴容if (_finish _end_of_storage){size_t len pos - _stare;reserve(capacity() 0 ? 4 : capacity() * 2);pos _stare len;}iterator end _finish - 1;while (end > pos){*(end…

java 設計模式_行為型_22模板模式

22.模板模式 模板方法&#xff08;Template Method&#xff09;作為Java的設計模式之一&#xff0c;一個詞概括其優勢特點那就是&#xff1a;抽象步驟 首先我們應該抽出共通的東西做一個父類&#xff08;Base類&#xff09;&#xff0c;其次具體的蛋糕制作由子類進一步實現&…

隨記:在springboot中websocket的使用

我現在有兩種方法 第一種&#xff1a;使用java封裝的這個包下的javax.websocket.* 先配置這個配置類 import com.alibaba.nacos.common.utils.CollectionUtils; import org.springframework.stereotype.Component;import javax.websocket.HandshakeResponse; import javax.w…

技術文章大綱:SpringBoot自動化部署實戰

技術文章大綱&#xff1a;SpringBoot自動化部署實戰 概述 自動化部署的背景與意義SpringBoot在現代化部署中的優勢常見自動化部署工具與方案概覽&#xff08;Jenkins、Docker、K8s等&#xff09; 環境準備 基礎工具要求&#xff1a;JDK、Maven/Gradle、Git服務器環境配置&a…

FastAdmin按鈕類功能全解析 class 屬性定義不同的交互行為

在 FastAdmin 中&#xff0c;超鏈接的 class 屬性用于定義不同的交互行為和樣式。以下是常見 class 配置的用途和區別&#xff1a; btn-dialog 用于觸發彈出對話框行為。點擊帶有此 class 的鏈接或按鈕時&#xff0c;FastAdmin 會自動加載指定的 URL 內容并在模態框中顯示。通…