我開源了一套springboot3快速開發模板

我開源了一套springboot3快速開發模板

開箱即用、按需組合、可快速二次開發的后端通用模板。

? 主要特性

  • Spring Boot 3.x + Java 17:跟隨 Spring 最新生態,利用現代語法特性。
  • 多模塊分層common 抽象通用能力、starter 負責啟動、modules 承載業務邏輯,職責清晰、易于擴展。
  • 依賴版本統一:父 pom + bom 管理所有三方庫版本,避免沖突。
  • 開箱即用組件:MyBatis-Plus、Redisson、MapStruct、Hutool、Lock4j、Sa-Token 等常用庫一應俱全。
  • 多環境配置dev / prod 雙環境示例,可自由新增。
  • 優雅異常 & 統一響應:內置 GlobalExceptionHandlerR<T> 響應體及通用錯誤碼。
  • 最佳實踐示例:含首頁 IndexController、分頁 DTO、公用工具類等常用代碼范例。

目錄結構

u-springboot3-init

├── pom.xml # 根 POM,統一依賴 / 插件 / 版本
├── readme.md # 項目說明(本文檔)

├── xiaou-common # 通用能力層
│ ├── xiaou-common-bom # 統一版本
│ ├── xiaou-common-core # 常量 / 響應體 / 異常 / 工具類
│ ├── xiaou-common-web # Web & Undertow 基礎封裝
│ ├── xiaou-common-mybatis # MyBatis-Plus 及插件整合
│ └── xiaou-common-redis # Redis & Redisson & 緩存封裝

├── xiaou-starter # 項目啟動模塊(入口)
│ └── src/main/resources # application.yml & 多環境配置

└── xiaou-modules # 業務模塊集合(預留)

項目采用了多模塊的劃分。

是我自己提煉的一個精簡項目模板。里面包含了很多常用的工具類,對很多工具類都進行了一個擴展。

其中的starter模塊是一個項目的啟動類,一般在這里只需要啟動項目以及配置文件的編寫。

xiaou-common模塊

這個模塊集成了很多通用的工具類。

例如:分頁的dto

image-20250621183316482

image-20250621183327626

以及一些常用的工具類

image-20250621183344124

全局錯誤攔截類image-20250621183400564

二開指南

一般業務二開引入

<dependency><groupId>com.xiaou</groupId><artifactId>xiaou-common-core</artifactId>
</dependency>
    <dependency><groupId>com.xiaou</groupId><artifactId>xiaou-common-web</artifactId></dependency>

其他東西例如redis mybatis都是按需進行導入。

關于分頁用到了分頁插件。

IPage<SysOperLog> page = new Page<>();
page.setCurrent(dto.getPageNum());
page.setSize(dto.getPageSize());// 添加排序字段(以 create_time 字段為例)
QueryWrapper<SysOperLog> queryWrapper = new QueryWrapper<>();
QueryWrapperUtil.applySorting(queryWrapper, dto, List.of(dto.getSortField()));IPage<SysOperLog> collegeIPage = baseMapper.selectPage(page, queryWrapper);

可以通過下面的方法構建分頁對象

對象轉換方面用到了mapstruct.plus

只需要調用MapstructUtils.convert方法就可以

同時在需要映射的類加上automapper

image-20250621183817787

項目地址

xiaou61/u-springboot3-init (github.com)

按領域拆分模塊,可顯著提升可維護性與團隊協作效率。

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

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

相關文章

OpenCV CUDA模塊設備層-----在GPU上計算兩個uchar1類型像素值的反正切(arctangent)比值函數atan2()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 對輸入的兩個 uchar1 像素值 a 和 b&#xff0c;先分別歸一化到 [0.0, 1.0] 浮點區間&#xff0c;然后計算它們的 四象限反正切函數。 函數原型…

從C++編程入手設計模式——觀察者模式

從C編程入手設計模式——觀察者模式 ? 觀察者模式簡直就是字如其名&#xff0c;觀察觀察&#xff0c;觀察到了告訴別人。觀察手的作用如此&#xff0c;觀察者模式的工作機制也是如此。這個模式的核心思路是&#xff1a;一個對象的狀態發生變化時&#xff0c;自動通知依賴它的…

MITM 中間人攻擊

?據Akamai 2023網絡安全報告顯示&#xff0c;MITM攻擊在數據泄露事件中占比達32.7%&#xff0c;平均每次事件造成企業損失$380,000? ?NIST研究指出&#xff1a;2022-2023年高級MITM攻擊增長41%&#xff0c;近70%針對金融和醫療行業? 一、MITM攻擊核心原理與技術演進 1. 中…

llama_index chromadb實現RAG的簡單應用

此demo是自己提的一個需求&#xff1a;用modelscope下載的本地大模型實現RAG應用。畢竟大模型本地化有利于微調&#xff0c;RAG使內容更有依據。 為什么要用RAG&#xff1f; 由于大模型存在一定的局限性&#xff1a;知識時效性不足、專業領域覆蓋有限以及生成結果易出現“幻覺…

TDMQ CKafka 版事務:分布式環境下的消息一致性保障

解鎖 CKafka 事務能力的神秘面紗 在當今數字化浪潮下&#xff0c;分布式系統已成為支撐海量數據處理和高并發業務的中流砥柱。但在這看似堅不可摧的架構背后&#xff0c;數據一致性問題卻如影隨形&#xff0c;時刻考驗著系統的穩定性與可靠性。 CKafka 作為分布式流處理平臺的…

常見的負載均衡算法

常見的負載均衡算法 在實現水平擴展過程中&#xff0c;負載均衡算法是決定請求如何在多個服務實例間分配的核心邏輯。一個合理的負載均衡策略能夠有效分散系統壓力&#xff0c;提升系統吞吐能力與穩定性。 負載均衡算法可部署在多種層級中&#xff0c;如七層HTTP反向代理&…

數據結構轉換與離散點生成

在 C 開發中&#xff0c;我們常常需要在不同的數據結構之間進行轉換&#xff0c;以滿足特定庫或框架的要求。本文將探討如何將 std::vector<gp_Pnt> 轉換為 QVector<QPointF>&#xff0c;并生成特定范圍內的二維離散點。 生成二維離散點 我們首先需要生成一系列…

零基礎學習Redis(12) -- Java連接redis服務器

在我們之前的內容中&#xff0c;我們會發現通過命令行操作redis是十分不科學的&#xff0c;所以redis官方提供了redis的應用層協議RESP&#xff0c;更具這個協議可以實現一個和redis服務器通信的客戶端程序&#xff0c;來簡化和完善redis的使用。現階段有很多封裝了RESP協議的庫…

clangd LSP 不能找到項目中的文件

clangd LSP 不能找到項目中的文件 clangd LSP 不能找到項目中的文件 clangd LSP 不能找到項目中的文件 Normally you need to create compile_commands.json。 如果你使用 cmake 作為構建工具&#xff0c;請執行下面的命令&#xff1a; cmake -DCMAKE_EXPORT_COMPILE_COMMAN…

【內存】Linux 內核優化實戰 - vm.overcommit_memory

目錄 vm.overcommit_memory 解釋一、概念與作用二、參數取值與含義三、相關參數與配置方式四、實際應用場景建議五、注意事項 vm.overcommit_memory 解釋 一、概念與作用 vm.overcommit_memory 是 Linux 內核中的一個參數&#xff0c;用于控制內存分配的“過度承諾”&#xf…

Python:.py文件轉換為雙擊可執行的Windows程序(版本2)

流程步驟&#xff1a; 這個流程圖展示了將 Python .py 文件轉換為 Windows 可執行程序的完整過程&#xff0c;主要包括以下步驟&#xff1a; 1、準備 Python文件&#xff0c;確保代碼可獨立運行 2、安裝打包工具&#xff08;如 PyInstaller&#xff09; 3、打開命令提示符并定位…

【請關注】mysql一些經常用到的高級SQL

經常去重復數據&#xff0c;數據需要轉等操作&#xff0c;匯總高級SQL MySQL操作 一、數據去重&#xff08;Data Deduplication&#xff09; 去重常用于清除重復記錄&#xff0c;保留唯一數據。 1. 使用DISTINCT關鍵字去重單列 -- 從用戶表中獲取唯一的郵箱地址 SELECT DISTIN…

RA4M2開發涂鴉模塊CBU(2)----配置按鍵開啟LED

RA4M2開發涂鴉模塊CBU.2--配置按鍵開啟LED 概述視頻教學樣品申請硬件準備參考程序按鍵口配置中斷回調函數主程序 概述 本實驗演示如何在 Renesas RA4M2 單片機上使用 GPIO 輸入&#xff08;按鍵&#xff09; 觸發 GPIO 輸出&#xff08;LED&#xff09;&#xff0c;并使用e2st…

Linux——Json

一 概念 json是一種輕量級&#xff0c;基于文本的&#xff0c;可讀的數據交換格式&#xff0c;能夠讓數據在不同系統&#xff08;比如前端—后端&#xff0c;服務器—客戶端&#xff09;間方便傳遞/存儲。在編程語言中都內置了處理json數據的方法 二 語法規則 1. 數據格式&a…

大模型之微調篇——指令微調數據集準備

寫在前面 高質量數據的準備是微調大模型的重中之重&#xff0c;一些高質量的數據集可能遠比模型性能更佳重要。 我是根據自己的數據照著B站up code花園LLaMA Factory 微調教程&#xff1a;如何構建高質量數據集&#xff1f;_嗶哩嗶哩_bilibili做的。 數據集格式 在LLaMA Fa…

LVS—DR模式

LVS—DR模式 LVS DR 模式詳細簡介 一、模式定義與核心原理 LVS DR&#xff08;Direct Routing&#xff09;模式&#xff0c;即直接路由模式&#xff0c;是 Linux Virtual Server&#xff08;LVS&#xff09;實現負載均衡的經典模式之一&#xff0c;工作于網絡四層&#xff0…

寶玉分享VibeCoding構建Agent

借助 Claude Code 完成的一個翻譯智能體 (Translator Agent)。你只需輸入一段文字、一個網址或一個本地文件路徑&#xff0c;它就能自動提取內容并完成翻譯。更酷的是&#xff0c;它還能修正原文中的拼寫錯誤&#xff0c;確保譯文的準確流暢。 到底什么是“真正的”AI Agent&a…

在spring boot中使用Logback

在 Spring Boot 中使用 Logback 作為日志框架是開發中的常見需求&#xff0c;因其高性能和靈活配置而廣受青睞。以下是詳細實踐指南&#xff0c;結合了配置方法、代碼示例及最佳實踐&#xff1a; &#x1f527; 一、依賴配置 Spring Boot 默認集成了 Logback&#xff0c;無需手…

騰訊云 Lighthouse 輕量應用服務器:數據驅動的架構選型指南

摘要&#xff1a;騰訊云 Lighthouse 作為面向輕量級應用場景的優化解決方案&#xff0c;通過高性價比套餐式售賣、開箱即用應用模板及流量包計費模式&#xff0c;顯著降低中小企業與開發者的上云門檻。本文基于性能測試與橫向對比&#xff0c;量化分析其核心優勢與適用邊界。 …

Linux TCP/IP協議棧中的TCP輸入處理:net/ipv4/tcp_input.c解析

在網絡通信領域,TCP(傳輸控制協議)因其可靠的面向連接特性而被廣泛應用。Linux內核的TCP/IP協議棧實現了對TCP協議的高效處理,其中net/ipv4/tcp_input.c文件扮演著關鍵角色,負責處理TCP數據包的輸入邏輯。下面是對該文件核心功能的深入剖析。 一、TCP數據包接收與處理 (…