README.md 9.6 KB
Newer Older
lakernote's avatar
lakernote 已提交
1
# Easyadmin
lakernote's avatar
lakernote 已提交
2

lakernote's avatar
lakernote 已提交
3
> **有用的话请鼓励❤️下作者,右上角☝️watch、star、fork三连点🙏🙏🙏一波**
lakernote's avatar
lakernote 已提交
4

lakernote's avatar
lakernote 已提交
5
#### 介绍
lakernote's avatar
lakernote 已提交
6

lakernote's avatar
lakernote 已提交
7
**easy**❤️,**easy**❤️,**easy**❤️,打造一款**简单****轻量级****后台管理系统脚手架**⛳⛳⛳。目前使用的技术都是相对较轻量级、上手很容易的技术。例如:**Spring Boot****hutool-all****mybatis-plus****knife4j****sa-token****javamelody****snakerflow** 等。**后续的发展方向也是把目标对准中小型项目****提炼简单高效架构**
lakernote's avatar
lakernote 已提交
8

9
**适合场景:💋学生学习、💋前后端项目练手、💋私活快速开发、💋中小型企业脚手架、💋Spring Boot深度扩展学习**
lakernote's avatar
lakernote 已提交
10

11
**项目架构灵活多变****内置前后端代码生成****开发模式**支持**前后端分离****不分离**模式,**部署模式支持多种方式****Fat.jar模式****Nginx反向代理****Nginx正向代理**
12

lakernote's avatar
lakernote 已提交
13 14
**项目地址**[https://gitee.com/lakernote/easy-admin](https://gitee.com/lakernote/easy-admin)

15
**配套技术文章**:👉[从零搭建开发脚手架](https://blog.csdn.net/abu935009066/category_10817814.html)
lakernote's avatar
lakernote 已提交
16 17 18 19 20

> 本开源项目,也是从我的专栏《从零搭建开发脚手架》整理而来

#### 在线演示

lakernote's avatar
lakernote 已提交
21
💋💋**地址**[http://101.132.189.23:81/admin/login.html](http://101.132.189.23:81/admin/login.html)💋💋
22

lakernote's avatar
lakernote 已提交
23 24
> **低配机轻点拍**,**穷比**✈️✈️✈️✈️✈️✈️✈️

lakernote's avatar
lakernote 已提交
25
- **用户名/密码****laker**/**lakernote**(老李提交请假申请)
26

lakernote's avatar
lakernote 已提交
27
- **用户名/密码****yang**/**lakernote**(杨总审批)
lakernote's avatar
lakernote 已提交
28

lakernote's avatar
lakernote 已提交
29
- **用户名/密码****zhang**/**lakernote**(大于2天张总审批)
lakernote's avatar
lakernote 已提交
30 31

>  **当前处于开发阶段** ,由于我前端技术小白水平,开发进度较慢,还有很多功能未开发完成,有想一起开发的小伙伴,请加微信☎️【**lakernote**】联系我。
lakernote's avatar
lakernote 已提交
32

lakernote's avatar
lakernote 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46
#### 功能列表

| 功能                                           | 状态 | 相关文档                                                     |
| ---------------------------------------------- | ---- | ------------------------------------------------------------ |
| **用户管理、部门管理、菜单管理、角色管理** 🐾   | ✅    |                                                              |
| **基于RBAC角色的访问控制** 🐾                   | ✅    | [认证授权 sa-token](https://blog.csdn.net/abu935009066/article/details/115553517) |
| **基于knife4j-Api文档集成** 🐾                  | ✅    | [Knife4j替换swagger](https://blog.csdn.net/abu935009066/article/details/115512988) |
| **基于javamelody应用监控** 🐾                   | ✅    | [Javamelody-应用程序监控](https://blog.csdn.net/abu935009066/article/details/116936366) |
| **基于Snakerflow的工作流引擎** 🐾               | ✅    | [轻量级工作流引擎Snakerflow集成](https://blog.csdn.net/abu935009066/article/details/119568513) |
| **自定义注解+AOP用户行为分析** 🐾               | ✅    | [SpringBoot自定义注解+AOP实现用户行为监控](https://blog.csdn.net/abu935009066/article/details/119755927) |
| **基于Freemrker的前后端代码一键生成** 🐾        | ✅    |                                                              |
| **基于mybatis插件的数据权限控制** 🐾            | ✅    | [基于Mybatis-Plus的数据权限实现](https://blog.csdn.net/abu935009066/article/details/115481149) |
| **基于SpringTask定时任务(支持动态CRUD任务)** 🐾 | ✅    | [基于Spring Task实现动态管理任务](https://blog.csdn.net/abu935009066/article/details/116142630) |
| **在线WebLog、动态修改日志级别** 🐾             | ✅    | [在线WebLog、动态修改日志级别](https://blog.csdn.net/abu935009066/article/details/114121941) |
lakernote's avatar
lakernote 已提交
47
| **保证服务的幂等性和防止重复请求** 🐾           | ✅    | [相关文档](https://blog.csdn.net/abu935009066/article/details/117471885) |
lakernote's avatar
lakernote 已提交
48 49
| **前端路由守卫**                               | ❎    |                                                              |
| **前端按钮控制**                               | ❎    |                                                              |
lakernote's avatar
lakernote 已提交
50

lakernote's avatar
lakernote 已提交
51
#### 软件架构
lakernote's avatar
lakernote 已提交
52

lakernote's avatar
lakernote 已提交
53 54 55 56 57 58 59 60 61
**其他相关文章**

- [从零搭建开发脚手架 HttpServletRequest多次读取异常,仅能读取一次](https://blog.csdn.net/abu935009066/article/details/113870578)
- [从零搭建开发脚手架 Spring Boot 输入参数校验多种方式整理](https://blog.csdn.net/abu935009066/article/details/114001409)
- [从零搭建开发脚手架 实现在线WebLog、动态修改日志级别](https://blog.csdn.net/abu935009066/article/details/114121941)
- [跨站请求伪造(CSRF)示例、原理及其防御措施](https://blog.csdn.net/abu935009066/article/details/114366771)
- [从零搭建开发脚手架 Spring Boot集成Mybatis-plus之一](https://blog.csdn.net/abu935009066/article/details/114535661)
- [从零搭建开发脚手架 Spring Boot集成Flyway实现数据库版本管理](https://blog.csdn.net/abu935009066/article/details/114586037)
- [Spring Boot Tomcat临时目录tmp抛错误异常](https://blog.csdn.net/abu935009066/article/details/114596193)
lakernote's avatar
lakernote 已提交
62 63 64 65 66

##### 技术选型

**前端**

lakernote's avatar
lakernote 已提交
67 68
**底座是Layui**

69
- https://gitee.com/pear-admin/Pear-Admin-Layui
lakernote's avatar
lakernote 已提交
70

lakernote's avatar
lakernote 已提交
71 72 73 74
- https://gitee.com/zhongshaofa/layuimini

**后端**

lakernote's avatar
lakernote 已提交
75 76 77 78 79 80 81 82 83 84 85 86
- **Spring Boot 2.3.7.RELEASE**
- **hutool-all 工具类**
- **lombok**
- **mybatis-plus 3.4.2** 
- **druid 数据库连接池**
- **mysql 数据库**
- **knife4j  Api文档**
- **sa-token 认证授权**
- **javamelody 应用监控**
- **easyexcel  Excel处理**
- **mail 邮箱**
- **snakerflow 国产工作流引擎**
lakernote's avatar
lakernote 已提交
87

lakernote's avatar
lakernote 已提交
88
#### 开发教程
lakernote's avatar
lakernote 已提交
89

lakernote's avatar
lakernote 已提交
90
##### 服务端
lakernote's avatar
lakernote 已提交
91

lakernote's avatar
lakernote 已提交
92
**1.执行**`sql/easy-admin.sql`
lakernote's avatar
lakernote 已提交
93

lakernote's avatar
lakernote 已提交
94
**2.修改**`src/main/resource/application.yaml`
lakernote's avatar
lakernote 已提交
95 96 97 98 99 100 101 102 103 104 105

```yaml
server:
  port: 8080
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/laker?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=false
```

lakernote's avatar
lakernote 已提交
106
**3.运行**`EasyAdminApplication.java`
lakernote's avatar
lakernote 已提交
107

lakernote's avatar
lakernote 已提交
108
##### 前端
lakernote's avatar
lakernote 已提交
109

lakernote's avatar
lakernote 已提交
110 111 112 113
2种方式部署

**一、Spring Boot虚拟磁盘模式**

114
运行`EasyAdminApplication.java`会自动在浏览器打开首页。
lakernote's avatar
lakernote 已提交
115 116 117

**二、纯静态模式**

118
纯静态的,可直接在浏览器运行,修改配置`web/admin/config/pear.config.yml`
lakernote's avatar
lakernote 已提交
119

lakernote's avatar
lakernote 已提交
120
```javascript
121 122 123
## 配置服务端地址
admin:
  server: http://localhost:8080
lakernote's avatar
lakernote 已提交
124
```
lakernote's avatar
lakernote 已提交
125

126 127 128
直接在浏览器访问`index.html`,如下图直接就可以访问了

![输入图片说明](https://images.gitee.com/uploads/images/2021/0816/001751_ef56d4c9_709188.png "屏幕截图.png")
lakernote's avatar
lakernote 已提交
129

130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
#### 代码生成

执行`CodeGenerator.java`,按照提示输入即可,以下为示例和解释

```
--------生成文件输出目录---------
D:\JT\easy-admin/src/main/java
-----------------
请输入模块名:
module.ext  // 仅仅会影响生成java代码路径D:\JT\easy-admin/src/main/java/com/laker/admin/module/ext
请输入表名,多个英文逗号分割:
ext_log    // 影响前端代码生成路径D:\JT\easy-admin/web/admin/view/ext/log
           // 影响接口定义 http://xx:port/ext/log
```

生成好后,直接在菜单权限处,配置访问路径`view/ext/log.html`即可访问新建模块

#### 规约

数据库表命名:模块名+实体,例如:ext_log

数据库字段:主键定义为bigint,且命名为:业务Id,例如:logId

lakernote's avatar
lakernote 已提交
153 154
#### 项目截图

lakernote's avatar
lakernote 已提交
155 156 157 158 159 160
**在线WebLog**

![](https://images.gitee.com/uploads/images/2021/0813/164746_e1d2e656_709188.gif)

**登录页**

lakernote's avatar
lakernote 已提交
161 162
![](https://img-blog.csdnimg.cn/460b237c269f48fba2b49633f094cc76.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70)

lakernote's avatar
lakernote 已提交
163
**主页菜单**
lakernote's avatar
lakernote 已提交
164

lakernote's avatar
lakernote 已提交
165
![](https://img-blog.csdnimg.cn/9dee2724dc4c4befac3e5bb983fd1726.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70)
lakernote's avatar
lakernote 已提交
166

lakernote's avatar
lakernote 已提交
167
**流程定义**
lakernote's avatar
lakernote 已提交
168 169 170

![](https://img-blog.csdnimg.cn/1c01801cbd434150bb70890be31084d1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70)

lakernote's avatar
lakernote 已提交
171 172
**应用监控**

lakernote's avatar
lakernote 已提交
173 174
![](https://img-blog.csdnimg.cn/60775442c9034987a9c55c2447856c2f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70)

lakernote's avatar
lakernote 已提交
175 176
**接口文档**

lakernote's avatar
lakernote 已提交
177 178 179 180
![](https://img-blog.csdnimg.cn/4c016aeead7a44d6a22db8cd14db35a9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70)



lakernote's avatar
lakernote 已提交
181
#### 部署教程
lakernote's avatar
lakernote 已提交
182

lakernote's avatar
lakernote 已提交
183
整体部署包位置如下:
lakernote's avatar
lakernote 已提交
184 185 186 187




lakernote's avatar
lakernote 已提交
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
![](https://images.gitee.com/uploads/images/2021/0812/141324_9e6528a0_709188.png "屏幕截图.png")

##### 服务端

> mvn clean package 打包

**1.执行**`easy-admin.sql`

**2.修改**`application.yaml`

```yaml
server:
  port: 8080
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/laker?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=false
```

**3.启动**

```sh
nohup java -jar easy-admin.jar &
```

##### 前端

216
**按照相对位置放即可**(或者自己弄个nginx丢进去)
lakernote's avatar
lakernote 已提交
217 218 219 220 221 222 223 224 225 226 227 228 229 230

```
easy-admin.jar
application.yml
web
--admin
----admin
----compoment
----config
----view
----index.html
----login.html
```

231 232
浏览器访问`http://ip:port/admin`

233 234 235 236
###  ☎️联系方式☎️

**微信公众号** : **Java大厂面试官** , **个人微信: lakernote**
![img](https://img-blog.csdnimg.cn/2020110915544650.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FidTkzNTAwOTA2Ng==,size_16,color_FFFFFF,t_70#pic_center)