AgileBoot เป็นแพลตฟอร์มโอเพ่นซอร์สฟูลสแตกที่มีประสิทธิภาพและรวดเร็ว เปิดให้บุคคลและองค์กรใช้งานได้ฟรีโดยไม่ต้องจองล่วงหน้า เป้าหมายของโปรเจ็กต์นี้คือการสร้างโครงการพัฒนาขนาดเล็กที่มีความคล่องตัว เชื่อถือได้ มีสไตล์การเขียนโค้ดที่ยอดเยี่ยม และมีข้อกำหนดของโปรเจ็กต์ เหมาะสำหรับโครงการขนาดเล็กของนักพัฒนาแต่ละรายหรือโครงการภายในบริษัท นอกจากนี้ยังสามารถใช้เป็นกรณีการเรียนรู้สำหรับผู้เริ่มต้นได้อีกด้วย
เวอร์ชัน V1.0.0 ได้รับการพัฒนาโดยใช้ JS และเวอร์ชัน V2.0.0 ได้รับการพัฒนาโดยใช้ TS
ที่อยู่ V1.0.0: แบ็กเอนด์ (AgileBoot-Back-End-Basic) - ส่วนหน้า (AgileBoot-Front-End-Basic)
หากคุณมีคำถามหรือข้อเสนอแนะ คุณสามารถส่งไปยังผู้เขียนได้ใน ประเด็น
ปัญหาของคุณสำคัญกว่าสตาร์
หากคุณคิดว่าโครงการนี้มีประโยชน์สำหรับคุณ คุณสามารถให้ดาวได้
ที่อยู่สาธิต:
รหัสผ่านบัญชี: admin/admin123
ฉันอยากทำโปรเจ็กต์ส่วนตัวเล็กๆ น้อยๆ ในเวลาว่าง ตอนแรกฉันมองหาโปรเจ็กต์โอเพ่นซอร์สมากมาย เช่น Ruoyi / Jeecg / ElAdmin / RenRen-Fast / Guns / EAdmin
สุดท้าย โครงการนี้เลือกที่จะสร้างใหม่และเปลี่ยนแปลงตามโครงการ Ruoyi ทั้งหมด
ก่อนอื่นต้องขอขอบคุณผู้เขียน Ruoyi เป็นอย่างมาก แต่โครงการ Ruoyi มีข้อบกพร่องมากเกินไป
ดังนั้นฉันจึงทำงานปรับโครงสร้างใหม่มากมาย
เทคโนโลยี | แสดงให้เห็น | เวอร์ชัน |
---|---|---|
springboot | เฟรมเวิร์กที่จำเป็นสำหรับโปรเจ็กต์ Java | 2.7 |
druid | พูลการเชื่อมต่อฐานข้อมูลอาลีบาบา | 1.2.8 |
springdoc | การสร้างเอกสาร | 3.0.0 |
mybatis-plus | กรอบฐานข้อมูล | 3.5.2 |
hutool | ชุดเครื่องมือในบ้าน (เรียบง่ายและใช้งานง่าย) | 3.5.2 |
mockito | การจำลองการทดสอบหน่วย | 1.10.19 |
guava | ชุดเครื่องมือของ Google (ให้การใช้งานแคชอย่างง่าย) | 31.0.1-จ |
junit | การทดสอบหน่วย | 1.10.19 |
h2 | ฐานข้อมูลในหน่วยความจำ | 1.10.19 |
jackson | เฟรมเวิร์ก Json ที่ปลอดภัยยิ่งขึ้น | ติดตามสปริงบูท |
knife4j | กรอบเอกสารอินเทอร์เฟซ | 3.0.3 |
Spring Task | กรอบงานแบบกำหนดเวลา (เหมาะสำหรับโครงการขนาดเล็ก) | ติดตามสปริงบูท |
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 - คำแนะนำทีละขั้นตอนในการรันโปรเจ็กต์แบบเต็มสแต็ก (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 -- 应用服务(事务层,操作领域模型类完成业务逻辑)
คำขอแบ่งออกเป็นสองประเภท: ประเภทหนึ่งคือการสืบค้น และอีกประเภทคือการดำเนินการ (นั่นคือ การอัปเดตข้อมูล)
แบบสอบถาม : ตัวควบคุม > xxxQuery > xxxApplicationService > xxxService(Db) > xxxMapper
การดำเนินการ : ตัวควบคุม > xxxCommand > xxxApplicationService > xxxModel (ตรรกะการประมวลผล) > บันทึกหรืออัปเดต (โปรเจ็กต์นี้ใช้ JPA โดยตรงเพื่อแทรกข้อมูลที่อัปเดต)
สิ่งนี้อิงตามแนวคิดการพัฒนาของ CQRS ซึ่งแยกการสืบค้นและการดำเนินการออกจากกัน การใช้งานทางธุรกิจของคลาสปฏิบัติการนั้นใช้แนวคิดของการออกแบบยุทธวิธี DDD โดยใช้คลาสโดเมนและคลาสโรงงานสำหรับตรรกะการใช้งานเชิงวัตถุมากขึ้น หากคุณไม่สบายใจกับการพัฒนารูปแบบนี้ คุณสามารถพัฒนาในโมดูลโดเมนตามรูปแบบที่คุณใช้ก่อนหน้านี้ได้จาก Controller->Service->DAO มันขึ้นอยู่กับคุณ
สมมติว่าคุณต้องการเพิ่มธุรกิจสมาชิกใหม่ คุณสามารถเพิ่มแพ็คเกจที่เกี่ยวข้องในสามโมดูลต่อไปนี้เพื่อดำเนินธุรกิจของคุณ
agileboot
├── agileboot-admin --
│ ├── member -- 会员模块
│
├── agileboot-domain --
├ ├── member -- 会员模块(举例)
├ ├── command -- 命令参数接收模型(命令)
├ ├── dto -- 返回数据类
├ ├── db -- DB操作类
├ ├── entity -- 实体类
├ ├── service -- DB Service
├ ├── mapper -- DB Dao
├ ├── model -- 领域模型类
├ ├── query -- 查询参数模型(查询)
│ ├────── MemberApplicationService -- 应用服务(事务层,操作领域模型类完成业务逻辑)
└─
กลุ่ม QQ: คลิกปุ่มเพื่อเข้าร่วมกลุ่ม
หากคุณคิดว่าโครงการนี้มีประโยชน์สำหรับคุณ คุณสามารถบริจาคเล็กน้อยเพื่อสนับสนุนเซิร์ฟเวอร์เว็บไซต์สาธิตของโครงการและค่าใช้จ่ายอื่น ๆ ได้~