27、請求處理-【源碼分析】-怎么改變默認的_method

27、請求處理-【源碼分析】-怎么改變默認的_method

要改變 Spring Boot 中默認的 `_method` 參數,可以通過以下步驟實現:

#### 原理分析

Spring Boot 中默認的 `HiddenHttpMethodFilter` 用于將表單中的 `_method` 參數值映射為實際的 HTTP 方法(如 PUT、DELETE 等),以便支持 RESTful 風格的請求。

#### 修改默認 `_method` 參數

1. **自定義 `HiddenHttpMethodFilter`**

? ?

? ?- 創建一個配置類,自定義 `HiddenHttpMethodFilter` Bean。

? ?

? ?```java

? ?@Configuration

? ?public class WebConfig {

? ?

? ? ? ?@Bean

? ? ? ?public HiddenHttpMethodFilter hiddenHttpMethodFilter() {

? ? ? ? ? ?HiddenHttpMethodFilter filter = new HiddenHttpMethodFilter();

? ? ? ? ? ?filter.setMethodParam("_m"); // 將默認的 _method 修改為 _m

? ? ? ? ? ?return filter;

? ? ? ?}

? ?}

? ?```

? ?

2. **修改表單**

? ?

? ?- 在表單中,將原先的 `_method` 隱藏域名稱修改為 `_m`。

? ?

? ?```html

? ?<form action="/user" method="post">

? ? ? ?<input name="_m" type="hidden" value="DELETE" />

? ? ? ?<input type="submit" value="REST-DELETE 提交" />

? ?</form>

? ?```

#### 原理說明

- **`@ConditionalOnMissingBean(HiddenHttpMethodFilter.class)`**

??

? - `WebMvcAutoConfiguration` 類中,默認的 `HiddenHttpMethodFilter` Bean 是在沒有用戶自定義該 Bean 時才會被創建。

??

- **自定義 Bean 生效**

??

? - 通過自定義 `HiddenHttpMethodFilter` Bean 并設置 `setMethodParam` 方法,覆蓋了默認的配置,從而改變了 `_method` 參數的默認值。

---

通過以上步驟,成功將 Spring Boot 中默認的 `_method` 參數修改為 `_m`,實現了自定義請求方法參數的功能。

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

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

相關文章

歐拉角轉為旋轉矩陣

外旋是固定坐標系&#xff0c;內旋是動態坐標系。外旋和內旋具有等價性。 固定坐標系依次繞xyz軸旋轉&#xff0c;旋轉矩陣 動態坐標系依次繞zyx軸旋轉&#xff0c;旋轉矩陣 numpy和scipy計算對比 import numpy as np from numpy import sin, cos, pi # 抑制科學計數法&#…

【AI學習筆記】Coze平臺實現生成小紅書熱門多圖筆記

背景前搖&原視頻教程&#xff1a; 最近總是在小紅書上刷到多圖組成的養生小妙招、效率提升小tips、退休奶奶療愈語錄等等這樣的圖文筆記&#xff0c;而且人物圖像一眼就是AI畫的。 當時我以為這個排版和文字是人工的&#xff0c;就讓AI保持角色一致性畫了下圖&#xff0c;…

如何選擇自動化編程平臺

從事自動化行業的工作者都知道&#xff0c;做PLC編程需要PLC編程軟件&#xff0c;做HMI可視化需要HMI編程軟件&#xff0c;做SCADA需要SCADA編程軟件&#xff0c;做DCS需要DCS軟件&#xff0c;做仿真調試需要仿真軟件。這些軟件有國外的、國內的&#xff0c;有傳統自動化廠商開…

Bug 背后的隱藏劇情

Bug 背后的隱藏劇情 flyfish 1. 「bug」&#xff1a;70多年前那只被拍進史書的飛蛾 故事原型&#xff1a;1947年哈佛實驗室的「昆蟲命案」 1947年的計算機長啥樣&#xff1f;像一間教室那么大&#xff0c;塞滿了幾萬根繼電器&#xff08;類似老式開關&#xff09;&#xff…

如何將通話記錄從Android傳輸到Android

“如何將通話記錄從 Android 轉移到 Android&#xff1f;我換了一部新的 Android 手機&#xff0c;想要將通話記錄復制到其中。”您需要將通話記錄從 Android 傳輸到 Android 是一種常見的情況&#xff0c;因為通話記錄是手機上最重要的數據之一。幸運的是&#xff0c;如果您從…

Android 云手機橫屏模式下真機鍵盤遮擋輸入框問題處理

一、背景 打開橫屏應用,點擊云機EditText輸入框,輸入框被鍵盤遮擋,如下圖&#xff1a; 未打開鍵盤狀態: 點擊第二個輸入框,鍵盤遮擋了輸入框&#xff1a; 二、解決方案&#xff08;推薦第三中方案,博主采用的也是第三種方案&#xff09; 博主這里整理了三種方案&#xff1a;…

進程IO之 進程

一、進程相關概念 1.什么是進程 程序&#xff1a;靜態的&#xff0c;編譯好的可執行文件&#xff0c;存放在磁盤中的指令和數據的集合 進程&#xff1a;動態的&#xff0c;是程序的一次執行過程&#xff0c;是獨立的可調度的任務 2.進程的特點 &#xff08;1&#xff09;對…

Condition源碼解讀(二)

本章我們繼續將Condition的最后一個方法signal方法&#xff0c;如果前面沒有看過的可以點擊LockSupport與Condition解析來看看Condition解讀的前半部分。 signal方法&#xff1a; public final void signal() {if (!AbstractQueuedLongSynchronizer.this.isHeldExclusively())…

股票收益率的計算

首先&#xff0c;需要從 Tushare.pro 注冊一個賬號并調用其API獲取股票日線數據&#xff08;具體操作請查看官網&#xff09;。 以通過調用tushare獲取股票000001(平安銀行)的股票數據為例&#xff0c;這里不設置日期&#xff0c;那么默認獲取Tushare提供的所有歷史數據。也可…

《算法筆記》13.2小節——專題擴展->樹狀數組(BIT) 問題 D: 數列-訓練套題T10T3

數列(sequence.pas/c/cpp) - 問題描述 一個簡單的數列問題&#xff1a;給定一個長度為n的數列&#xff0c;求這樣的三個元素ai, aj, ak的個數&#xff0c;滿足ai < aj > ak&#xff0c;且i < j < k。 - 輸入數據 第一行是一個整數n(n < 50000)。 第二行n個整…

C# Windows Forms應用程序-001

目錄 項目概述 主要組件及功能 類定義 控件聲明 構造函數 Dispose 方法 InitializeComponents 方法 控件配置詳解 Button 控件 (button1) TextBox 控件 (textBox1) GroupBox 控件 (groupBox1) Label 控件 (label1 至 label5) OpenFileDialog 控件 (openFileDialog1…

2025.5.28總結

今日工作&#xff1a;最近進入了項目的關鍵節點&#xff0c;要求每人每天提兩單&#xff0c;今天周三&#xff0c;下班前只提了一個單。下午開了一場需求服務驗收會&#xff0c;我演示了自己驗收的那個需求&#xff0c;然后講的不是很好。當初再構造數據時請教了一個人&#xf…

Transformer核心技術解析LCPO方法:精準控制推理長度的新突破

原創文章1FFN前饋網絡與激活函數技術解析&#xff1a;Transformer模型中的關鍵模塊2Transformer掩碼技術全解析&#xff1a;分類、原理與應用場景3【大模型技術】Attention注意力機制詳解一4Transformer模型中位置編碼&#xff08;Positional Embedding&#xff09;技術全解析(…

在 WSL 中安裝 JetBrains Toolbox:完整指南

JetBrains Toolbox 是一個非常實用的工具&#xff0c;它可以幫助開發者輕松管理 JetBrains 的各種開發工具&#xff0c;如 IntelliJ IDEA、PyCharm、WebStorm 等。通過它&#xff0c;你可以快速安裝、更新和管理這些工具&#xff0c;極大地提高了開發效率。而在 WSL 環境中安裝…

ZooKeeper 命令操作

文章目錄 Zookeeper 數據模型Zookeeper 服務端常用命令Zookeeper 客戶端常用命令 Zookeeper 數據模型 ZooKeeper 是一個樹形目錄服務,其數據模型和Unix的文件系統目錄樹很類似&#xff0c;擁有一個層次化結構。這里面的每一個節點都被稱為&#xff1a; ZNode&#xff0c;每個節…

Turf.js:前端地理空間分析的瑞士軍刀

在Web開發中,地理空間數據處理已成為許多應用的核心需求。從地圖可視化到位置服務,再到復雜的數據分析,前端開發者需要強大的工具來處理這些任務。Turf.js 作為一款輕量級、模塊化的地理空間分析庫,憑借其豐富的功能和易用性,成為前端開發者的得力助手。本文將深入探討 Tu…

大模型微調

使用 Ollama 微調大語言模型&#xff08;如 LLaMA、Mistral、Gemma 等&#xff09;主要是圍繞 LoRA&#xff08;Low-Rank Adaptation&#xff09;或者 QLoRA 等輕量級微調技術進行的。Ollama 本身是一個部署和運行本地大語言模型的平臺&#xff0c;但其微調能力有限&#xff0c…

《自動駕駛軌跡規劃實戰:Lattice Planner實現避障路徑生成(附可運行Python代碼)》—— 零基礎實現基于離散優化的避障路徑規劃

《自動駕駛軌跡規劃實戰&#xff1a;Lattice Planner實現避障路徑生成&#xff08;附可運行Python代碼&#xff09;》 —— 零基礎實現基于離散優化的避障路徑規劃 一、為什么Lattice Planner成為自動駕駛的核心算法&#xff1f; 在自動駕駛的路徑規劃領域&#xff0c;Lattice…

切換到舊提交,同時保證當前修改不丟失

在 Git 中&#xff0c;可以通過以下幾種方式切換到之前的提交&#xff0c;同時保留當前的提交&#xff08;即不丟失工作進度&#xff09;&#xff1a; 1. 使用 git checkout 創建臨時分離頭指針&#xff08;推薦用于查看&#xff09; git checkout <commit-hash>這會讓…

zookeeper 操作總結

zookeeper 中的節點類型 節點類型命令選項說明?持久節點?無選項&#xff08;默認&#xff09;永久存在&#xff0c;除非手動刪除。?臨時節點?-e與客戶端會話綁定&#xff0c;會話結束自動刪除&#xff08;?不能有子節點?&#xff09;。?順序節點?-s節點名自動追加遞增…