AgileBoot是一套開源的全端精簡快速開發平台,毫無保留給個人及企業免費使用。本專案的目標是做一款精簡可靠,程式碼風格優良,專案規範的小型開發鷹架。 適合個人開發者的小型專案或公司內部專案使用。也可作為初學者學習使用的案例。
V1.0.0版本使用JS開發,V2.0.0版本使用TS開發。
V1.0.0位址:後端(AgileBoot-Back-End-Basic) - 前端(AgileBoot-Front-End-Basic)
有任何問題或建議,可以在Issues中提給作者。
您的Issue比Star更重要
如果覺得專案對您有幫助,可以來個Star
演示地址:
帳號密碼:admin/admin123
業餘時間想做一些個人小項目,一開始找了很多開源專案例如Ruoyi / Jeecg / ElAdmin / RenRen-Fast / Guns / EAdmin
最後本計畫選擇基於Ruoyi計畫進行完全重構改造。
首先非常感謝Ruoyi作者。但是Ruoyi專案存在太多缺陷。
於是我做了大量的重構工作。
科技 | 說明 | 版本 |
---|---|---|
springboot | Java專案必備框架 | 2.7 |
druid | alibaba資料庫連接池 | 1.2.8 |
springdoc | 文件生成 | 3.0.0 |
mybatis-plus | 資料庫框架 | 3.5.2 |
hutool | 國產工具包(簡單易用) | 3.5.2 |
mockito | 單元測試模擬 | 1.10.19 |
guava | 谷歌工具包(提供簡易快取實作) | 31.0.1-jre |
junit | 單元測試 | 1.10.19 |
h2 | 記憶體資料庫 | 1.10.19 |
jackson | 比較安全的Json框架 | follow springboot |
knife4j | 介面文檔框架 | 3.0.3 |
Spring Task | 定時任務框架(適合小型專案) | follow springboot |
git clone https://github.com/valarchie/AgileBoot-Back-End
git clone https://github.com/valarchie/AgileBoot-Front-End
1. 生成所需的数据库表
找到后端项目根目录下的sql目录中的agileboot_xxxxx.sql脚本文件(取最新的sql文件)。 导入到你新建的数据库中。
2. 在admin模块底下,找到resource目录下的application-dev.yml文件
配置数据库以及Redis的 地址、端口、账号密码
3. 在根目录执行mvn install
4. 找到agileboot-admin模块中的AgileBootAdminApplication启动类,直接启动即可
5. 当出现以下字样即为启动成功
____ _ _ __ _ _
/ ___| | |_ __ _ _ __ | |_ _ _ _ __ ___ _ _ ___ ___ ___ ___ ___ / _| _ _ | || |
___ | __|/ _` || '__|| __| | | | || '_ / __|| | | | / __|/ __|/ _ / __|/ __|| |_ | | | || || |
___) || |_| (_| || | | |_ | |_| || |_) | __ | |_| || (__| (__| __/__ \__ | _|| |_| || ||_|
|____/ __|__,_||_| __| __,_|| .__/ |___/ __,_| ___|___|___||___/|___/|_| __,_||_|(_)
|_|
詳細步驟請查看對應前端部分
1. pnpm install
2. pnpm run dev
3. 当出现以下字样时即为启动成功
vite v2.6.14 dev server running at:
> Local: http://127.0.0.1:80/
ready in 4376ms.
詳細過程在這篇文章中:AgileBoot - 手把手一步一步帶你Run起全端專案(SpringBoot+Vue3)
對於想要嘗試全端專案的前端人員,這邊提供更簡單的後端啟動方式,無需配置Mysql和Redis直接啟動
1. 找到agilboot-admin模块下的resource文件中的application.yml文件
2. 配置以下两个值
spring.profiles.active: basic,dev
改为
spring.profiles.active: basic,test
agileboot.embedded.mysql: false
agileboot.embedded.redis: false
改为
agileboot.embedded.mysql: true
agileboot.embedded.redis: true
请注意:高版本的MacOS系统,无法启动内置的Redis
3. 找到agileboot-admin模块中的AgileBootAdminApplication启动类,直接启动即可
? 大部分功能,均有通過單元測試整合測試保證品質。
功能 | 描述 | |
---|---|---|
使用者管理 | 使用者是系統操作者,此功能主要完成系統使用者配置 | |
部門管理 | 配置系統組織機構(公司、部門、小組),樹狀結構展現支援資料權限 | |
職位管理 | 配置系統使用者所屬擔任職務 | |
選單管理 | 配置系統選單、操作權限、按鈕權限標識等,本地快取提供效能 | |
角色管理 | 角色選單權限分配、設定角色依機構進行資料範圍權限劃分 | |
參數管理 | 對系統動態配置常用參數 | |
通知公告 | 系統通知公告資訊發布維護 | |
操作日誌 | 系統正常操作日誌記錄和查詢;系統異常資訊日誌記錄和查詢 | |
登入日誌 | 系統登入日誌記錄查詢包含登入異常 | |
線上用戶 | 當前系統中活躍用戶狀態監控 | |
系統介面 | 根據業務代碼自動產生相關的api介面文檔 | |
服務監控 | 監視目前系統CPU、記憶體、磁碟、堆疊等相關訊息 | |
快取監控 | 對系統的快取資訊查詢,指令統計等 | |
連接池監視 | 監視目前系統資料庫連線池狀態,可進行分析SQL找出系統效能瓶頸 |
agileboot
├── agileboot-admin -- 管理后台接口模块(供后台调用)
│
├── agileboot-api -- 开放接口模块(供客户端调用)
│
├── agileboot-common -- 精简基础工具模块
│
├── agileboot-infrastructure -- 基础设施模块(主要是配置和集成,不包含业务逻辑)
│
├── agileboot-domain -- 业务模块
├ ├── user -- 用户模块(举例)
├ ├── command -- 命令参数接收模型(命令)
├ ├── dto -- 返回数据类
├ ├── db -- DB操作类
├ ├── entity -- 实体类
├ ├── service -- DB Service
├ ├── mapper -- DB Dao
├ ├── model -- 领域模型类
├ ├── query -- 查询参数模型(查询)
│ ├────── UserApplicationService -- 应用服务(事务层,操作领域模型类完成业务逻辑)
請求分為兩類:一類是查詢,一類是操作(即對資料有進行更新)。
查詢:Controller > xxxQuery > xxxApplicationService > xxxService(Db) > xxxMapper
操作:Controller > xxxCommand > xxxApplicationService > xxxModel(處理邏輯) > save 或update (本專案直接採用JPA的方式進行插入已更新資料)
這是藉鏡CQRS的開發理念,將查詢和操作分開處理。操作類的業務實現借鑒了DDD戰術設計的理念,使用領域類,工廠類更面向對象的實現邏輯。 如果你不太適應這樣的開發模式的話。可以在domain模組中按照你之前從Controller->Service->DAO的模式來開發。 it is up to you.
假設你要新增一個會員member業務,可以在以下三個模組新增對應的套件來實現你的業務
agileboot
├── agileboot-admin --
│ ├── member -- 会员模块
│
├── agileboot-domain --
├ ├── member -- 会员模块(举例)
├ ├── command -- 命令参数接收模型(命令)
├ ├── dto -- 返回数据类
├ ├── db -- DB操作类
├ ├── entity -- 实体类
├ ├── service -- DB Service
├ ├── mapper -- DB Dao
├ ├── model -- 领域模型类
├ ├── query -- 查询参数模型(查询)
│ ├────── MemberApplicationService -- 应用服务(事务层,操作领域模型类完成业务逻辑)
└─
QQ群: 點選按鈕入群。
如果覺得專案對您有幫助,可以小額捐款支持本專案示範網站伺服器等費用~