AgileBoot is an open source full-stack streamlined and rapid development platform that is free for individuals and enterprises to use without reservation. The goal of this project is to create a small development scaffolding that is streamlined, reliable, has excellent coding style, and has project specifications. Suitable for individual developers' small projects or internal company projects. It can also be used as a learning case for beginners.
The V1.0.0 version is developed using JS, and the V2.0.0 version is developed using TS .
V1.0.0 address: Backend (AgileBoot-Back-End-Basic) - Frontend (AgileBoot-Front-End-Basic)
If you have any questions or suggestions, you can submit them to the author in Issues .
Your Issue is more important than Star
If you think the project is helpful to you, you can give it a Star
Demo address:
Account password: admin/admin123
I wanted to do some small personal projects in my spare time. At first I looked for many open source projects such as Ruoyi / Jeecg / ElAdmin / RenRen-Fast / Guns / EAdmin
Finally, this project chose to completely reconstruct and transform based on the Ruoyi project.
First of all, thank you very much to the author Ruoyi. But the Ruoyi project has too many flaws.
So I did a lot of refactoring work.
technology | illustrate | Version |
---|---|---|
springboot | Essential framework for Java projects | 2.7 |
druid | alibaba database connection pool | 1.2.8 |
springdoc | Document generation | 3.0.0 |
mybatis-plus | database framework | 3.5.2 |
hutool | Domestic tool kit (simple and easy to use) | 3.5.2 |
mockito | Unit test simulation | 1.10.19 |
guava | Google toolkit (providing simple cache implementation) | 31.0.1-jre |
junit | Unit testing | 1.10.19 |
h2 | In-memory database | 1.10.19 |
jackson | A safer Json framework | follow springboot |
knife4j | Interface documentation framework | 3.0.3 |
Spring Task | Timed task framework (suitable for small projects) | 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. 当出现以下字样即为启动成功
____ _ _ __ _ _
/ ___| | |_ __ _ _ __ | |_ _ _ _ __ ___ _ _ ___ ___ ___ ___ ___ / _| _ _ | || |
___ | __|/ _` || '__|| __| | | | || '_ / __|| | | | / __|/ __|/ _ / __|/ __|| |_ | | | || || |
___) || |_| (_| || | | |_ | |_| || |_) | __ | |_| || (__| (__| __/__ \__ | _|| |_| || ||_|
|____/ __|__,_||_| __| __,_|| .__/ |___/ __,_| ___|___|___||___/|___/|_| __,_||_|(_)
|_|
For detailed steps, please see the corresponding front-end section.
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.
The detailed process is in this article: AgileBoot - Step by step guide you to run a full-stack project (SpringBoot+Vue3)
For front-end personnel who want to try full-stack projects, here is a simpler way to start the back-end without configuring Mysql and 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启动类,直接启动即可
? Most functions have passed unit testing and integration testing to ensure quality.
Function | describe | |
---|---|---|
User management | The user is the system operator. This function mainly completes the system user configuration. | |
Department management | Configure system organization (company, department, group), tree structure display supports data permissions | |
Position management | Configure system users’ positions | |
Menu management | Configure system menus, operation permissions, button permission identifiers, etc., and local cache provides performance | |
role management | Role menu permission allocation, setting roles, dividing data range permissions by organization | |
Parameter management | Dynamically configure common parameters for the system | |
Notices and Announcements | System notification announcement information release and maintenance | |
Operation log | System normal operation log recording and query; system abnormal information log recording and query | |
Login log | System login log query contains login exception | |
Online users | Active user status monitoring in the current system | |
System interface | Automatically generate relevant API interface documents based on business code | |
Service monitoring | Monitor the current system CPU, memory, disk, stack and other related information | |
Cache monitoring | Query system cache information, command statistics, etc. | |
Connection pool monitoring | Monitor the current system database connection pool status and analyze SQL to find system performance bottlenecks |
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 -- 应用服务(事务层,操作领域模型类完成业务逻辑)
Requests are divided into two categories: one is query, and the other is operation (that is, updating the data).
Query : Controller > xxxQuery > xxxApplicationService > xxxService(Db) > xxxMapper
Operation : Controller > xxxCommand > xxxApplicationService > xxxModel (processing logic) > save or update (this project directly uses JPA to insert updated data)
This is based on the development concept of CQRS, which separates queries and operations. The business implementation of operation classes draws on the concept of DDD tactical design, using domain classes and factory classes for more object-oriented implementation logic. If you are not comfortable with this development model. You can develop in the domain module according to the pattern you used before from Controller->Service->DAO. it is up to you.
Suppose you want to add a new member business, you can add corresponding packages in the following three modules to implement your business
agileboot
├── agileboot-admin --
│ ├── member -- 会员模块
│
├── agileboot-domain --
├ ├── member -- 会员模块(举例)
├ ├── command -- 命令参数接收模型(命令)
├ ├── dto -- 返回数据类
├ ├── db -- DB操作类
├ ├── entity -- 实体类
├ ├── service -- DB Service
├ ├── mapper -- DB Dao
├ ├── model -- 领域模型类
├ ├── query -- 查询参数模型(查询)
│ ├────── MemberApplicationService -- 应用服务(事务层,操作领域模型类完成业务逻辑)
└─
QQ group: Click the button to join the group.
If you think this project is helpful to you, you can make a small donation to support the project's demo website server and other expenses~