README.md 8.8 KB
Newer Older
lakernote's avatar
lakernote 已提交
1 2 3
# easy-admin

#### 介绍
lakernote's avatar
lakernote 已提交
4

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

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

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

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

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

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

17
##### 功能列表
lakernote's avatar
lakernote 已提交
18

19 20
| 功能                                            | 状态 | 相关文档                                                     |
| ----------------------------------------------- | ---- | ------------------------------------------------------------ |
21 22 23 24 25 26 27 28 29 30
| **用户管理、部门管理、菜单管理、角色管理** 🐾     | ✅    |                                                              |
| **基于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 已提交
31 32 33

#### 在线演示

34 35
**地址**[http://101.132.189.23/admin/login.html](http://101.132.189.23/admin/login.html)

36
**用户名/密码****laker**/**lakernote**
37

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

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

lakernote's avatar
lakernote 已提交
42 43 44 45 46 47 48 49 50
**其他相关文章**

- [从零搭建开发脚手架 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 已提交
51 52 53 54 55

##### 技术选型

**前端**

lakernote's avatar
lakernote 已提交
56 57
**底座是Layui**

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

lakernote's avatar
lakernote 已提交
60 61 62 63
- https://gitee.com/zhongshaofa/layuimini

**后端**

lakernote's avatar
lakernote 已提交
64 65 66 67 68 69 70 71 72 73 74 75
- **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 已提交
76

lakernote's avatar
lakernote 已提交
77
#### 开发教程
lakernote's avatar
lakernote 已提交
78

lakernote's avatar
lakernote 已提交
79
##### 服务端
lakernote's avatar
lakernote 已提交
80

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

lakernote's avatar
lakernote 已提交
83
**2.修改**`src/main/resource/application.yaml`
lakernote's avatar
lakernote 已提交
84 85 86 87 88 89 90 91 92 93 94

```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 已提交
95
**3.运行**`EasyAdminApplication.java`
lakernote's avatar
lakernote 已提交
96

lakernote's avatar
lakernote 已提交
97
##### 前端
lakernote's avatar
lakernote 已提交
98

lakernote's avatar
lakernote 已提交
99 100 101 102
2种方式部署

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

103
运行`EasyAdminApplication.java`会自动在浏览器打开首页。
lakernote's avatar
lakernote 已提交
104 105 106

**二、纯静态模式**

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

lakernote's avatar
lakernote 已提交
109
```javascript
110 111 112
## 配置服务端地址
admin:
  server: http://localhost:8080
lakernote's avatar
lakernote 已提交
113
```
lakernote's avatar
lakernote 已提交
114

115 116 117
直接在浏览器访问`index.html`,如下图直接就可以访问了

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

119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
#### 代码生成

执行`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 已提交
142 143
#### 项目截图

lakernote's avatar
lakernote 已提交
144 145 146 147 148 149
**在线WebLog**

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

**登录页**

lakernote's avatar
lakernote 已提交
150 151
![](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 已提交
152
**主页菜单**
lakernote's avatar
lakernote 已提交
153

lakernote's avatar
lakernote 已提交
154
![](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 已提交
155

lakernote's avatar
lakernote 已提交
156
**流程定义**
lakernote's avatar
lakernote 已提交
157 158 159

![](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 已提交
160 161
**应用监控**

lakernote's avatar
lakernote 已提交
162 163
![](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 已提交
164 165
**接口文档**

lakernote's avatar
lakernote 已提交
166 167 168 169
![](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 已提交
170
#### 部署教程
lakernote's avatar
lakernote 已提交
171

lakernote's avatar
lakernote 已提交
172
整体部署包位置如下:
lakernote's avatar
lakernote 已提交
173 174 175 176




lakernote's avatar
lakernote 已提交
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
![](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 &
```

##### 前端

205
**按照相对位置放即可**(或者自己弄个nginx丢进去)
lakernote's avatar
lakernote 已提交
206 207 208 209 210 211 212 213 214 215 216 217 218 219

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

220 221
浏览器访问`http://ip:port/admin`

222 223 224 225
###  ☎️联系方式☎️

**微信公众号** : **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)