@後端

Stories List
@apifox

深度剖析 Spring Boot Async:解讀原理與實戰指南

Spring Boot 的異步功能(Async)允許我們將某些任務異步執行,而不會阻塞主線程。這對於處理耗時的操作非常有用,如發送電子郵件、生成報表、調用外部 API 等。通過異步處理,我們可以釋放主線程,讓它繼續處理其他請求,同時後台任務在後台線程中進行。這種方式可以顯著提高應用程序的響應速度和併發性。 Spring Boot Async 使用場景 以下是一些適合使用 Spring Boot

apifox Avatar

@apifox

Nickname Apifox

@chen_67f9ccbe6f07b

Spring @Async 內部調用失效問題:五種解決方案實戰分析

是不是遇到過這種情況:你給一個方法加上了@Async 註解,期待它能異步執行,結果發現它還是同步執行的?更困惑的是,同樣的註解在其他地方卻能正常工作。這個問題困擾了很多 Java 開發者,尤其是當你在同一個類中調用帶有@Async 註解的方法時。今天,我們就來深入解析這個問題的原因,並提供多種實用的解決方案。 Spring @Async 的正常工作原理 在討論內部調用問題前,我們先了解一下@Asy

chen_67f9ccbe6f07b Avatar

@chen_67f9ccbe6f07b

Nickname 異常君

@daqianduan

前後端命名最佳實踐

命名規範 最佳實踐 命名是個困擾了我很久的問題,各種方式都試過,現在總結固化一下作為一個大結論。 原則:優先考慮小寫、下劃線,不用中劃線。 1. 文件夾 小寫 下劃線 2. 文件名 小寫 下劃線 3. 樣式名 小寫 下劃線 4. 類名 首字母大寫 駝峯 5. 函數名 駝峯 6. 變量名 駝峯 7. 常量名 全大寫 下劃線 8. 數據庫名 小寫 下劃線 9. 數據庫表 小寫 下劃線 10. 字段名

daqianduan Avatar

@daqianduan

Nickname 前端一鍋煮

@xinliangcoder

如何基於 Gin 封裝出屬於自己 Web 框架?

思路 在基於 Gin 封裝出屬於自己的 Web 框架前,你需要先了解 Gin 的基本用法和設計理念。 然後,你可以通過以下步驟來封裝自己的 Web 框架: 封裝路由:Gin 的路由是通過 HTTP 方法和 URL 路徑進行匹配的,你可以根據自己的需求,封裝出符合應用的業務需求的路由。你可以考慮將路由進行分類,例如公共路由、私有路由等,以方便管理。 封裝中間件:Gin 提供了很多中間件,例如日

xinliangcoder Avatar

@xinliangcoder

Nickname 程序員新亮

@photino

Zino開發框架快速入門

Zino致力於打造基於Rust語言的新一代組裝式應用開發框架,提供一站式跨平台多端解決方案,可用於後端API開發、桌面應用開發等。我們奉行『約定優於配置』的原則,提供開箱即用的功能模塊,極大提升開發效率;並通過應用接口抽象與actix-web、axum、dioxus、ntex等框架集成,打通社區生態。 本文將以zino倉庫下的examples/axum-app為例,詳細講解怎麼使用zino框

photino Avatar

@photino

Nickname photino

@webweb

vue+node後台管理(帶預覽地址)

最近在逛開源網站時發現了一個比較實用又簡潔的開源後台管理。 先貼一下預覽地址:點擊直達 為啥説比較實用呢!來看看它的功能就知道了: 用户管理 菜單管理 角色管理 菜單權限 角色權限 字典管理 富文本+圖片管理+文件管理 等等還有一些比較實用的.... 用過後台都知道這幾個功能的含金量,還自帶了node後端直接啓動就可使用。 最後再貼幾張演示圖:

webweb Avatar

@webweb

Nickname web網站裝修工

@wangzhongyang_go

高階面經:Spring框架全析

在 Java 開發的浩瀚世界裏,Spring 框架無疑是一顆璀璨耀眼的明珠。無論是初涉編程領域的新手,還是經驗豐富的資深開發者,都難以忽視它的強大與實用。它宛如一把萬能鑰匙,為諸多複雜的企業級應用開發難題解鎖,那麼 Spring 框架究竟是什麼呢?下面就帶你一探究竟。 一、Spring 框架 是什麼? Spring 是輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架,可以很方便地對數據庫進

wangzhongyang_go Avatar

@wangzhongyang_go

Nickname 王中陽講編程

@java_3y

面試官就是要問我SpringMVC的源碼,頂不住!

《對線面試官》系列目前已經連載22篇啦!有深度風趣的系列! 【對線面試官】Java註解 【對線面試官】Java泛型 【對線面試官】 Java NIO 【對線面試官】Java反射 動態代理 【對線面試官】多線程基礎 【對線面試官】 CAS 【對線面試官】synchronized 【對線面試官】AQSReentrantLock 【對線面試官】線程池 【對線面試官】ThreadL

java_3y Avatar

@java_3y

Nickname Java3y

@apifox

如何模擬後台API調用場景,很細!

簡介 在開發前後台分離項目並且通過不同團隊來實現的時候,如何將後台設計的 API 準確的傳達到前台,是一個非常重要的工作。為了簡化這個過程,開源社區做了很多努力,比如 protobuf技術,swagger 的誕生, 以及後面 openapi 的演化,都在試圖解決 API 描述和文檔的問題。這些標準某些程度上大大簡化了 API 文檔的撰寫和維護,但是API設計往往比較複雜,所以另外還有一些痛點沒有解

apifox Avatar

@apifox

Nickname Apifox

@zhuiyi_5e4ea2134d01e

Django學習(4)——前後端分離

1. Django的設計模式 Django是基於pyton語言的一個比較全面的框架,採用了MVC設計模式,但是Django更關注於模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。各自職責如下: 層次 職責 模型(Model) 即數據存取層。處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以

zhuiyi_5e4ea2134d01e Avatar

@zhuiyi_5e4ea2134d01e

Nickname 追憶

@shenchendebanma

PHP+Uniapp助力婚戀社交:相親交友系統平台的商業化模式與運營策略

一、商業化模式 會員訂閲制 核心功能:提供基礎免費服務(如註冊、瀏覽),高級功能(如精準匹配、無限私信、查看訪客記錄)需付費解鎖。 差異化定價: 按訂閲時長(月/季/年)或功能等級(普通/VIP/至尊)分層定價,滿足不同用户需求。 案例:通過PHP後端實現會員權限管理,Uniapp前端提供流暢的付費流程體驗。 虛擬禮物與增值服務 功能設計:用户可購買

shenchendebanma Avatar

@shenchendebanma

Nickname miadk

@lvxingdefanka

TCP 真的存在“粘包”問題嗎?

引言 許多開發者都曾面對過這樣一個的問題:明明分別調用兩次send()發送了"Hello"和"World",接收方卻可能在一個recv()調用中讀到完整的"HelloWorld";或是發送了一個完整的 JSON 對象,接收端卻需要多次讀取才能拼湊出完整數據。這種現象被中文技術社區廣泛稱為“TCP 粘包” 然而,若我們深入 TCP 協議的設計本質,會發現一個令人困惑的矛盾——RFC 文檔中從未定義過

lvxingdefanka Avatar

@lvxingdefanka

Nickname 牛肉燒烤屋

@aphysia

聊聊Go裏面的閉包

以前寫 Java 的時候,聽到前端同學談論閉包,覺得甚是新奇,後面自己寫了一小段時間 JS,雖只學到皮毛,也大概瞭解到閉包的概念,現在工作常用語言是 Go,很多優雅的代碼中總是有閉包的身影,看來不瞭解個透是不可能的了,本文讓我來科普(按照自己水平隨便瞎扯)一下: 1、什麼是閉包? 在真正講述閉包之前,我們先鋪墊一點知識點: 函數式編程 函數作用域 作用域的繼承關係 ## 1.1

aphysia Avatar

@aphysia

Nickname 秦懷雜貨店

@apifox

JavaScript 閉包是什麼:深入瞭解

閉包是指在一個函數內部創建另一個函數,並且內部函數可以訪問外部函數的變量、參數以及其他內部函數,即使外部函數已經執行完畢。這種機制使得內部函數保留了對外部作用域的引用,即使外部作用域已經不再活躍。 為什麼閉包重要? 閉包在 JavaScript 中具有重要的用途和價值。它們可以用於創建私有變量、封裝邏輯、避免全局污染等方面。另外,閉包還允許你在函數之外操作局部變量,從而為代碼提供更大的靈活性和可

apifox Avatar

@apifox

Nickname Apifox

@hunter_58d48c41761b8

Python筆記三之閉包與裝飾器

本文首發於公眾號:Hunter後端 原文鏈接:Python筆記三之閉包與裝飾器 這一篇筆記介紹 Python 裏面的裝飾器。 在介紹裝飾器前,首先提出這樣一個需求,我想統計某個函數的執行時間,假設這個函數如下: import time def add(x, y): time.sleep(1) return x + y 想要統計 add 函數的執行時間,可以如何操作,在一般

hunter_58d48c41761b8 Avatar

@hunter_58d48c41761b8

Nickname Hunter

@hunter_58d48c41761b8

Golang基礎筆記八之函數

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記八之函數 本篇筆記介紹 Golang 裏函數相關的內容,以下是本篇筆記目錄: 函數的定義語法 函數返回值 可變參數函數 匿名函數 閉包 1、函數的定義語法 函數的定義格式如下: func 函數名(參數列表) (返回值列表) { 函數體 } 比如下面是一個兩數相加返回其和的函數: func add(a, b in

hunter_58d48c41761b8 Avatar

@hunter_58d48c41761b8

Nickname Hunter

@finally_m

【超長文】Redis在項目中的17種使用場景

Redis 是一個開源的高性能鍵值對數據庫,它以其內存中數據存儲、鍵過期策略、持久化、事務、豐富的數據類型支持以及原子操作等特性,在許多項目中扮演着關鍵角色。以下是V哥整理的17個Redis在項目中常見的使用場景: 緩存:Redis 可以作為應用程序的緩存層,減少數據庫的讀取壓力,提高數據訪問速度。 會話存儲:在 Web 應用中,Redis 可以用來存儲用户的會話信息,如登錄狀態、購物車內容

finally_m Avatar

@finally_m

Nickname 威哥愛編程

@macrozheng

橫空出世!一款開源的數據同步工具,穩定又高效,好用到爆!

在開發項目的時候,我們經常會遇到數據同步的場景。例如將開發環境的數據庫表同步到測試環境,將MySQL中的數據同步到ES中。今天給大家分享一款好用的數據同步工具DBSyncer,自帶可視化界面,希望對你有所幫助! 簡介 DBSyncer是一款開源的數據同步工具,支持MySQL、Oracle、PostgreSQL、Elasticsearch(ES)、Kafka、File等同步場景,目前在Gitee上已

macrozheng Avatar

@macrozheng

Nickname macrozheng

@debuginn

Phoenix框架 從0到1設計業務併發框架 怎麼組織設計一個框架

上篇文章主要講了設計 Phoenix 框架前的遇到的問題和設計框架的思路 《 Phoenix 框架 從0到1設計業務併發框架 小米商城產品站革新之路》,本篇文章主要講一下如何設計框架的。 不死鳥併發框架,是自動構建有向圖按照深度進行構建併發組並進行併發調用結果的框架。 產品站業務靜態接口與動態接口都需要調用大量的後台服務進行獲取數據進行業務編排,而各個併發調用之間又相互存在依賴,採用併發組設計拆解

debuginn Avatar

@debuginn

Nickname Meng小羽

@jianghushinian

Go 併發控制:sync.WaitGroup 詳解

首發地址:https://mp.weixin.qq.com/s/-FtDLcHW39vgvqSMUVM-yw 前段時間我在《Go 併發控制:errgroup 詳解》一文中講解了 errgroup 的用法和源碼,通過源碼我們知道 errgroup 內部是使用 sync.WaitGroup 實現的,那麼本文就更進一步,來探索下 sync.WaitGroup 源碼是如何實現的。 使用示例 sync.Wa

jianghushinian Avatar

@jianghushinian

Nickname 江湖十年

@jianghushinian

Go 併發控制:sync.Map 詳解

我們知道,Go 中的 map 類型是非併發安全的,所以 Go 就在 sync 包中提供了 map 的併發原語 sync.Map,允許併發操作,本文就帶大家詳細解讀下 sync.Map 的原理。 使用示例 sync.Map 提供了基礎類型 map 的常用功能,使用示例如下: package main import ( "fmt" "sync" ) func main() {

jianghushinian Avatar

@jianghushinian

Nickname 江湖十年

@jianghushinian

Go 併發編程:如何實現一個併發安全的 map

上週發佈的文章「Go 併發控制:sync.Map 詳解」有讀者反饋説我寫的太難了,上來就挑戰源碼,對新手不夠友好。所以這篇文章算作補充,從入門到進階的順序講解一下在 Go 中如何自己實現一個併發安全的 map。 內置 map 首先,我們來測試一下 Go 語言內置 map 併發安全性,示例如下: https://github.com/jianghushinian/blog-go-example/tr

jianghushinian Avatar

@jianghushinian

Nickname 江湖十年