蒼穹外賣項目筆記day02

接下來的筆記都會以難點與一些不常見的方法為主,一些重復的crud并不會出現哦

ThreadLocal類

ThreadLocal 并不是一個Thread,而是Thread的局部變量,它用于創建線程局部變量

  • 核心思想:每個線程都有自己獨立的變量副本。這意味著,即使多個線程使用同一個 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">ThreadLocal</font>** 對象,它們也無法看到或修改彼此的變量值。這完美地避免了多線程環境下的共享資源競爭問題,無需使用同步(synchronized)。ThreadLocal為每個線程提供單獨一份存儲空間,具有線程隔離的效果,只有在線程內才能獲取到對應的值,線程外則不能訪問。
  • 簡單比喻:就像一個公司(進程)里有多個員工(線程)。公司提供了一個儲物柜(**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">ThreadLocal</font>** 對象),但這個儲物柜很神奇。每個員工用他的工卡去開這個儲物柜時,打開的都是只屬于他自己的那個小格子。員工A看不到員工B格子里的東西,反之亦然。這個公共的儲物柜(**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">ThreadLocal</font>**)只是提供了訪問各自獨立空間的“鑰匙”或“機制”。

在本項目中,當我們在新增員工的時候,需要表明是誰對新增員工進行了創建和修改,那么我們就需要拿到當前登錄用戶的Token,并對其解析,就可以得到這兩個值

先創建使用靜態工具類BaseContext實現ThreadLocal

使用BaseContext進行存儲,后續在調用時,只需在調用處使用getCurrentId()方法,便可以動態的得到當前操作的id

分頁查詢

這樣主要使用了PageHelper插件來簡化分頁代碼的開發

select * from employee后面會自動補上limit(),括號內為傳遞的參數

  • 要使用的依賴:

  • 員工分頁查詢的實現

時間格式化

對時間字段的顯示進行統一的規定的兩種方法:

  1. 在屬性上加上注解@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”),對日期進行格式化

但這種方式,需要在每個時間屬性上都要加上該注解,使用較麻煩,不能全局處理。

  1. 在WebMvcConfiguration中擴展SpringMVC的消息轉換器,統一對日期類型進行格式處理

自定義消息轉換器,可以對全局的變量有效,因為這是我們自己定義的配置類,會在全局生效

/*** 擴展Spring MVC框架的消息轉換器-->主要用于日期* @param converters*/
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {log.info("擴展消息轉換器...");//創建一個消息轉換器對象MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();//需要為創建的消息轉換器對象設置一個對象轉換器,對象轉換器可以將java對象序列化為json數據messageConverter.setObjectMapper(new JacksonObjectMapper());//將上面的消息轉換器對象追加到mvc框架的轉換器集合中converters.add(0, messageConverter);
}

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

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

相關文章

設計模式12-適配器模式

定義 Adapter Partern: 將一個類的接口變換成客戶端所期待的另一種接口&#xff0c;從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 場景 系統需要使用現有的類&#xff0c;而這些類的接口不符合系統的需要。 典型場景&#xff1a;集成第三方庫、遺留系統代…

VGG改進(6):基于PyTorch的VGG16-SE網絡實戰

1. 引言&#xff1a;注意力機制在計算機視覺中的重要性近年來&#xff0c;深度學習在計算機視覺領域取得了巨大成功&#xff0c;從圖像分類到目標檢測&#xff0c;各種復雜任務都獲得了前所未有的性能提升。然而&#xff0c;傳統的卷積神經網絡&#xff08;CNN&#xff09;在處…

[電商網站-動態渲染商品-尺寸、尺碼、顏色圖片等];庫存缺貨狀態動態對應。

目錄 描述&#xff1a; 數據結構 組件代碼文件 描述&#xff1a; 自動處理SKU數據生成規格屬性列表 支持用戶選擇不同規格組合 智能禁用無庫存選項 自動匹配當前選擇對應的SKU信息 通過視覺樣式區分可選/不可選狀態 該組件采用Vue實現&#xff0c;通過計算屬性和響應式數據…

論《運動戰》

運動戰的本質是以機動換主動&#xff0c;以時間換空間&#xff0c;通過高度的流動性、主動的位移和靈活的戰術選擇&#xff0c;在動態中創造并捕捉戰機&#xff0c;最終以較小的代價換取最大的勝利。它是一種非對稱的、主動的作戰哲學&#xff0c;其核心不在于一城一地的得失&a…

DVWA靶場通關筆記-CSRF(Impossible級別)

目錄 一、查看源碼 二、功能分析 三、CSRF防范分析 1、CSRF令牌驗證機制 &#xff08;1&#xff09;核心原理 &#xff08;2&#xff09;防范機制 2、舊密碼確認防御實現 &#xff08;1&#xff09;核心原理 &#xff08;2&#xff09;為什么舊密碼確認能有效防范CSRF…

深層語義在自然語言處理中的理論框架與技術融合研究

摘要本文章系統闡述了深層語義在自然語言處理&#xff08;NLP&#xff09;領域的定義、特征及其與知識圖譜和大型預訓練語言模型的融合方法。基于截至2025年8月的最新研究成果&#xff0c;報告深入分析了深層語義的多維度特性、技術實現路徑以及面臨的挑戰&#xff0c;為研究人…

深入解析HarmonyOS:UIAbility與Page的生命周期協同

深入解析HarmonyOS&#xff1a;UIAbility與Page的生命周期協同 在HarmonyOS應用開發中&#xff0c;理解UIAbility和Page的生命周期是構建高質量應用的關鍵。本文將深入探討這兩大核心概念的生命周期及其協同工作機制&#xff0c;幫助開發者更好地管理應用資源、優化用戶體驗。…

規律作息 + 養成好的習慣 + 考研倒計時 111 天 + 線面積分入門 1 下半部分

文章目錄前言雜進度10.4空間直線一般式方程對稱式方程 點向式方程參數式方程轉換位置關系10.510.610.7平面束方程10.810.9總結前言 規律作息&#xff01; 雜 欲買桂花同載酒&#xff0c;終不似&#xff0c;少年游。 進度 向量代數和空間解析幾何。 10.4 這題就是算一個…

序列容器(vector,deque,list)

STL 序列式容器&#xff08;vector、deque、list、array、forward_list&#xff09;的核心特征是按插入順序存儲元素&#xff08;元素的邏輯順序與物理存儲順序一致&#xff09; vector 下圖是底層原理 具體點擊鏈接vector介紹 deque(雙端隊列) 在 C STL 中&#xff0c;deque…

Time-MOE添加MLP分類頭進行分類任務

文章目錄一、背景&#xff1a;Time-MoE 的 4096 長度限制二、數據準備&#xff08;以帕金森二分類為例&#xff09;三、標簽對齊&#xff08;弱監督&#xff09;四、類別不平衡 & 數據劃分五、模型微調&#xff08;凍結 backbone&#xff0c;只訓 MLP 頭&#xff09;六、評…

樸素貝葉斯:用 “概率思維” 解決分類問題的經典算法

一、貝葉斯&#xff1a;從 “逆概” 問題走來的數學家要理解樸素貝葉斯&#xff0c;得先回到它的 “源頭”—— 貝葉斯公式&#xff0c;以及它要解決的核心問題&#xff1a;逆概問題。1. 貝葉斯的 “生不逢時”托馬斯?貝葉斯&#xff08;Thomas Bayes&#xff0c;約 1701-1761…

Qt/C++開發監控GB28181系統/視頻點播主碼流子碼流/動態切換碼流/支持海康大華/全網唯一

一、前言說明 目前市面上的國標監控系統&#xff0c;沒有看到可以切換碼流的&#xff0c;都是默認主碼流&#xff0c;包括easynvr、livegbs、wvp等&#xff0c;很是奇怪為什么他們不做呢&#xff1f;難道沒有用戶反饋需要這個&#xff1f;我這就遇到過一些用戶需要能夠切換主碼…

【 MYSQL | 基礎篇 四大SQL語句 】資料位于文章末尾

摘要&#xff1a;本文先介紹數據庫 SQL 的核心概念&#xff0c;接著闡述 SQL 通用語法與 DDL、DML、DQL、DCL 四大分類&#xff0c;隨后詳細講解各類語句操作&#xff0c;包括 DDL 的數據庫與表操作及數據類型&#xff0c;DML 的數據增刪改&#xff0c;DQL 的查詢語法與功能&am…

Webrtc支持FFMPEG硬解碼之Intel

Intel QSV下載編譯git clone https://github.com/lu-zero/mfx_dispatch.git1.使用CMake生產VS工程編譯生成libmfx.lib文件 頭文件為mfx文件夾libmfx---include---mfx---lib---libmfx.libWebrtc中ffmpeg的修改因為Webrtc中的ffmpeg是使用gn進行編譯的&#xff0c;所以這里先找到…

【二叉樹(DFS) - LeetCode】437. 路徑總和 III

437. 路徑總和 III 題解&#xff1a;DFS /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullp…

【Python】shutil.make_archive() 方法詳解

文章目錄功能概述函數簽名核心參數詳解1. base_name2. format3. root_dir4. base_dir使用示例將 /home/user/project/data 目錄打包為 data.tar.gz&#xff0c;并保存到 /home/user/backups/打包當前工作目錄下的 docs 文件夾為 zip 文件替代方案總結shutil.make_archive() 是 …

CAN總線(Controller Area Network Bus)控制器局域網總線(二)

6、錯誤幀 總線上所有設備都會監督總線的數據&#xff0c;一旦發現“位錯誤”或“填充錯誤”或“CRC錯誤”或“格式錯誤”或“應答錯誤” &#xff0c;這些設備便會發出錯誤幀來破壞數據&#xff0c;同時終止當前的發送設備。7、過載幀 當接收方收到大量數據而無法處理時&#…

LeetCode 317 離建筑物最近的距離

LeetCode 317 題的詳細題目信息如下&#xff1a;題目名稱Shortest Distance from All Buildings&#xff08;中文譯名&#xff1a;離建筑物最近的距離&#xff09;題目描述給你一個由 0、1 和 2 組成的二維網格&#xff0c;其中&#xff1a;0 代表空地1 代表建筑物2 代表障礙物…

AI之CodeTool之Kode:Kode(claude_code風格)的簡介、安裝和使用方法、案例應用之詳細攻略

AI之CodeTool之Kode&#xff1a;Kode(claude_code風格)的簡介、安裝和使用方法、案例應用之詳細攻略 目錄 相關文章 LLMs之PE之SystemPrompt&#xff1a;analysis_claude_code的簡介、使用方法、案例應用之詳細攻略 AI之CodeTool之Kode&#xff1a;Kode(claude_code風格)的簡…

網絡請求優化:用 Retrofit 攔截器玩轉日志、重試與緩存,OkHttp 和 Volley 誰更香?

目錄 1. 攔截器:Retrofit 的“超級管理員” 攔截器的本質 為什么用攔截器? 2. 日志攔截器:讓請求和響應“現原形” 引入日志攔截器 實現日志攔截器 日志輸出示例 生產環境注意事項 3. 重試攔截器:網絡不穩定也能穩如狗 設計重試邏輯 集成到 Retrofit 優化重試策…