You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
opsli-boot/README.md

420 lines
27 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# OPSLI 快速开发平台 (v2.0)
<div align="center">
<img width="500" src="https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/logo.png"/>
<br/> <br/>
[![AUR](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://github.com/hiparker/opsli-boot/blob/master/LICENSE) [![spring-boot](https://img.shields.io/badge/spring--boot-2.5.6.RELEASE-green.svg)](http://spring.io/projects/spring-boot) [![mybatis-plus](https://img.shields.io/badge/mybatis--plus-3.5.2-blue.svg)](http://mp.baomidou.com) [![hutool](https://img.shields.io/badge/hutool-5.7.14-blue.svg)](https://www.hutool.cn) [![Stars](https://img.shields.io/github/stars/hiparker/opsli-boot?style=flat-square&label=Stars&logo=github)](https://github.com/hiparker/opsli-boot) [![Forks](https://img.shields.io/github/forks/hiparker/opsli-boot?style=flat-square&label=Forks&logo=github)](https://github.com/hiparker/opsli-boot)
</div>
## 关于
> OPSLI 是一款的低代码快速平台,零代码开发,致力于做更简洁的后台管理系统!
> OPSLI 快速开发平台基于springboot、vue、element-ui ,项目采用前后端分离架构,热插拔式业务模块与插件扩展性高 ,代码简洁功能丰富开箱即用帮助Java项目解决70%的重复工作,让开发更关注业务逻辑,既能快速提高效率,节省研发成本,同时又不失灵活性!
## 地址
- 官方网站: <a href="https://opsli.com" target="_blank">https://opsli.com</a>
- 演示地址: <a href="https://demo.opsli.bedebug.com" target="_blank">https://demo.opsli.bedebug.com</a>
- 文档地址: <a href="https://wiki.opsli.bedebug.com" target="_blank">https://wiki.opsli.bedebug.com</a>
- 作者博客: <a href="https://www.bedebug.com" target="_blank">https://www.bedebug.com</a>
- 问题反馈: <a href="https://github.com/hiparker/opsli-boot/issues" target="_blank">https://github.com/hiparker/opsli-boot/issues</a>
- 交流Q群: 724850675 (1群)
## 技术选型
### 前端
- vue-admin-beautiful
### 后端版本
> 单机版
| 名称 | 版本号 | | 名称 | 版本号 |
| ---------------- |---| ---- | -------------- |--------------|
| jdk版本 | 1.8 | | springboot版本 | 2.7.10 |
| mybatis-plus版本 | 3.5.2 | | pagehelper版本 | 1.4.6 |
| druid版本 | 1.1.17 | | dynamic版本 | 2.5.4 |
| fastjson版本 | 1.2.83 | | transmittable版本 | 2.12.5 |
| ehcache版本 | 3.9.0 | | easyexcel版本 | 2.2.6 |
| captcha版本 | 1.6.2 | | guava版本 | 30.0-android |
| enjoy版本 | 4.9.06 | | hutool版本 | 5.7.14 |
## 在线演示
> - 地址:<a href="https://demo.opsli.bedebug.com" target="_blank">https://demo.opsli.bedebug.com</a>
> - 账号demo
> - 密码Aa123456
--------------------------------------------
> - 数据库监控/系统接口
> - 账号: admin
> - 密码: 123456
## 功能特点
**高扩展登录**基于Spring Security 改造的高扩展接口,便于后期支持邮箱、手机、账号密码、第三方等登录
**高扩展API管控**自动支持v1-vn 多版本、多终端接口兼容,业务扩展不打架
**代码生成**:采用自研的代码生成器+Jfinal Enjoy 模板引擎,在线可视化生成前后端代码,可自定义生成代码模版
**多租户功能**采用自研完善的多租户SaaS功能提供行业SaaS全套解决方案
**登录安全**:登录数据采用双向加密模式,后台一键式切换加密秘钥,保障登录用户隐私安全
**数据安全**:支持自定义注解,一键式加密数据
**缓存安全**:采用自研的 Security Cache解决缓存穿透、击穿、雪崩问题
**身份安全**:修改邮箱、手机号或忘记密码时,有独立的身份认证鉴权
**在线文档**通过接入Knife4j实现在线API文档的查看与调试;
**业务分离**采用前后端分离的框架设计前端采用vue-admin-beautiful开源版本 基于element-ui
## 扩展登录
![opsli-login-auth](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/login-auth-code.jpeg)
## 系统预览
![opsli-login](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/login.jpg)
![opsli-2](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-2.jpg)
![opsli-3](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-3.jpg)
![opsli-self](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/self.jpg)
![opsli-auth](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/auth.jpg)
![opsli-4](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-4.jpg)
![opsli-5](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-5.jpg)
![opsli-7](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-7.jpg)
![opsli-8](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-8.jpg)
![opsli-setting](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/setting.jpg)
![opsli-9](https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/opsli-9.jpg)
## 代码结构
```
.
├── opsli-api 对外API 控制中心
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── opsli
│ │ │ │ └── api
│ │ │ │ ├── base API 基础
│ │ │ │ ├── web API Web层
│ │ │ │ └── warpper API 封装对象
│ │ │ │
├── opsli-base-support 基础模块
│ ├── opsli-common 基础 - 公共模块
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── common
│ │ │ │ │ ├── annotation 公共模块 - 注解类
│ │ │ │ │ ├── api 公共模块 - Result内部文件(暂时无用)
│ │ │ │ │ ├── base 公共模块 - 基础类
│ │ │ │ │ ├── constants 公共模块 - 常量
│ │ │ │ │ ├── enums 公共模块 - Enums
│ │ │ │ │ ├── exception 公共模块 - 异常类
│ │ │ │ │ ├── msg 公共模块 - 信息
│ │ │ │ │ ├── thread 公共模块 - 线程相关
│ │ │ │ │ └── utils 公共模块 - 工具类
│ │ │ │ │
│ └── opsli-core 基础 - 核心模块
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── opsli
│ │ │ │ ├── core 核心
│ │ │ │ │ ├── api 核心模块 - API接口相关登录Token缓存
│ │ │ │ │ ├── autoconfigure 核心模块 - 自动配置
│ │ │ │ │ │ ├── conf 自动装配
│ │ │ │ │ │ └── properties 配置文件注入
│ │ │ │ │ ├── base 核心模块 - 基础类 Entity Service
│ │ │ │ │ ├── cache 核心模块 - 缓存处理
│ │ │ │ │ ├── eventbus 核心模块 - 消息事件
│ │ │ │ │ ├── filters 核心模块 - 过滤器
│ │ │ │ │ │ ├── aspect AOP切面
│ │ │ │ │ │ └── interceptor Spring拦截器
│ │ │ │ │ ├── general 核心模块 - 其他处理器
│ │ │ │ │ ├── handler 核心模块 - 异常拦截处理
│ │ │ │ │ ├── holder 核心模块 - 上下文数据
│ │ │ │ │ ├── listener 核心模块 - 系统监听器
│ │ │ │ │ ├── log 核心模块 - 日志处理
│ │ │ │ │ ├── msg 核心模块 - 信息
│ │ │ │ │ ├── options 核心模块 - 系统参数
│ │ │ │ │ ├── persistence 核心模块 - 查询条件构造器
│ │ │ │ │ │ └── querybuilder
│ │ │ │ │ │ └── chain 核心模块 - 查询条件构造器 - 责任链(例: 租户处理)
│ │ │ │ │ ├── security 核心模块 - 权限验证
│ │ │ │ │ │ ├── filter 拦截器
│ │ │ │ │ │ └── service 获取用户的Service
│ │ │ │ │ └── utils 核心模块 - 工具类
│ │ │ │ └── pligins 插件
│ │ │ │ └── oss 插件模块 - OSS文件存储
│ │ │ │
├── opsli-modulars 业务
│ ├── opsli-modulars-generator 代码生成器
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ ├──core 代码生成器 - 核心包
│ │ │ │ │ │ └── generator
│ │ │ │ │ │ ├── enums 代码生成器 - 枚举类
│ │ │ │ │ │ ├── exception 代码生成器 - 异常类
│ │ │ │ │ │ ├── msg 代码生成器 - 信息类
│ │ │ │ │ │ ├── strategy 代码生成器 - 策略类
│ │ │ │ │ │ └── utils 代码生成器 - 工具包
│ │ │ │ │ │
│ │ │ │ │ └── modulars 代码生成器 - 业务包
│ │ │ │ │ └── generator
│ │ │ │ │ ├── column 代码生成器 - 表结构
│ │ │ │ │ ├── createrlogs 代码生成器 - 生成记录
│ │ │ │ │ ├── general 代码生成器 - 同步数据库执行器
│ │ │ │ │ ├── importable 代码生成器 - 数据库导入
│ │ │ │ │ └── table 代码生成器 - 表管理
│ │ │ │ │
│ └── opsli-modulars-system 系统模块
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── opsli
│ │ │ │ └── modulars
│ │ │ │ ├── system 系统模块 - 系统配置
│ │ │ │ │ ├── area 系统模块 - 地域
│ │ │ │ │ ├── dict 系统模块 - 字典
│ │ │ │ │ ├── login 系统模块 - 登录
│ │ │ │ │ │ ├── dto 系统模块 - 登录 - DTO
│ │ │ │ │ │ ├── event 系统模块 - 登录 - 消息事件
│ │ │ │ │ │ ├── handler 系统模块 - 登录 - 前置、成功、失败处理器
│ │ │ │ │ │ ├── vo 系统模块 - 登录 - 返回数据
│ │ │ │ │ │ └──web 系统模块 - 登录 - 接口控制器
│ │ │ │ │ ├── logs 系统模块 - 日志
│ │ │ │ │ ├── menu 系统模块 - 菜单
│ │ │ │ │ ├── monitor 系统模块 - 系统监控
│ │ │ │ │ ├── options 系统模块 - 参数配置
│ │ │ │ │ ├── org 系统模块 - 组织机构
│ │ │ │ │ ├── role 系统模块 - 角色
│ │ │ │ │ ├── tenant 系统模块 - 租户
│ │ │ │ │ └── user 系统模块 - 用户
│ │ │ │ │
│ │ │ │ └── tools 工具包
│ │ │ │ ├── api 工具包 - 版本控制API测试类
│ │ │ │ ├── common 工具包 - 公共服务
│ │ │ │ ├── email 工具包 - 邮件包
│ │ │ │ ├── oss 工具包 - 文件存储
│ │ │ │ └── searchhis 工具包 - 搜索历史
│ │ │ │
├── opsli-plugins 插件
│ ├── opsli-plugins-crypto 加解密插件包
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── crypto
│ │ │ │ │ ├── enums 加解密插件包 - 枚举
│ │ │ │ │ ├── exception 加解密插件包 - 异常处理类
│ │ │ │ │ ├── model 加解密插件包 - 模型
│ │ │ │ │ ├── msg 加解密插件包 - 异常消息
│ │ │ │ │ ├── spring 加解密插件包 - Spring集成相关内容
│ │ │ │ │ └── strategy 加解密插件包 - 加解密策略 包含 对称、非对称等等
│ │ │ │ │
│ ├── opsli-plugins-ehcache Ehcache缓存插件 (二级缓存)
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── cache
│ │ │ │ │ ├── conf Ehcache缓存插件 - 自动装配
│ │ │ │ │ ├── msg Ehcache缓存插件 - 信息
│ │ │ │ │ └── service Ehcache缓存插件 - 服务
│ │ │ │ │
│ ├── opsli-plugins-email 邮件插件包
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── email
│ │ │ │ │ ├── conf 邮件插件包 - 配置文件
│ │ │ │ │ ├── exception 邮件插件包 - 异常处理类
│ │ │ │ │ ├── msg 邮件插件包 - 异常消息
│ │ │ │ │ ├── service 邮件插件包 - 处理类
│ │ │ │ │ └── wrapper 邮件插件包 - 包装器
│ │ │ │ │
│ ├── opsli-plugins-excel Excel插件
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── excel
│ │ │ │ │ ├── annotation Excel插件 - 注解
│ │ │ │ │ ├── exception Excel插件 - 异常类
│ │ │ │ │ ├── factory Excel插件 - 工厂
│ │ │ │ │ ├── listener Excel插件 - 监听器
│ │ │ │ │ └── msg Excel插件 - 信息
│ │ │ │ │
│ └── opsli-plugins-redis Redis缓存插件(一级缓存)
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── redis
│ │ │ │ │ ├── conf Redis缓存插件 - 自动装配
│ │ │ │ │ ├── exception Redis缓存插件 - 异常类
│ │ │ │ │ ├── jsonserializer Redis缓存插件 - json特殊处理器
│ │ │ │ │ ├── lock Redis缓存插件 - 分布式锁
│ │ │ │ │ ├── msg Redis缓存插件 - 信息
│ │ │ │ │ ├── pushsub Redis缓存插件 - 消息订阅
│ │ │ │ │ └── scripts Redis缓存插件 - 脚本处理
│ │ │ │ └── resources
│ │ │ │ │ └── lua Redis缓存插件 - Lua脚本
│ │ │ │ │
│ └── opsli-plugins-redisson Redisson分布式锁
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── redis
│ │ │ │ │ ├── annotation Redisson分布式锁 - 注解
│ │ │ │ │ ├── conf Redisson分布式锁 - 自动装配
│ │ │ │ │ ├── constant Redisson分布式锁 - 常量
│ │ │ │ │ ├── enums Redisson分布式锁 - 枚举类
│ │ │ │ │ ├── properties Redisson分布式锁 - 配置类
│ │ │ │ │ └── strategy Redisson分布式锁 - 策略
│ │ │ │ │
│ ├── opsli-plugins-security 安全认证插件包
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── security
│ │ │ │ │ ├── authentication 安全认证插件包 - 识别器
│ │ │ │ │ ├── checker 安全认证插件包 - 检查器
│ │ │ │ │ ├── eventbus 安全认证插件包 - 消息事件
│ │ │ │ │ ├── eventdto 安全认证插件包 - 消息事件DTO
│ │ │ │ │ ├── exception 安全认证插件包 - 异常
│ │ │ │ │ ├── handler 安全认证插件包 - 登陆处理器
│ │ │ │ │ ├── properties 安全认证插件包 - 配置文件
│ │ │ │ │ ├── provider 安全认证插件包 - Security认证器
│ │ │ │ │ ├── service 安全认证插件包 - 加载用户信息抽象Service
│ │ │ │ │ ├── utils 安全认证插件包 - 工具包
│ │ │ │ │ └── vo 安全认证插件包 - VO
│ │ │ │ │
│ ├── opsli-plugins-sms 短信插件包
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── opsli
│ │ │ │ │ └── plugins
│ │ │ │ │ └── sms
│ │ │ │ │ ├── enums 短信插件包 - 配置文件
│ │ │ │ │ ├── exception 短信插件包 - 异常处理类
│ │ │ │ │ ├── model 短信插件包 - 模型
│ │ │ │ │ ├── msg 短信插件包 - 异常消息
│ │ │ │ │ └── service 短信插件包 - 服务处理
│ │ │ │ │
│ └── opsli-plugins-waf Waf软防火墙
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── opsli
│ │ │ │ └── plugins
│ │ │ │ └── redis
│ │ │ │ ├── conf Waf软防火墙 - 自动装配
│ │ │ │ ├── filter Waf软防火墙 - 拦截器
│ │ │ │ ├── msg Waf软防火墙 - 信息
│ │ │ │ ├── properties Waf软防火墙 - 配置类
│ │ │ │ ├── servlet Waf软防火墙 - Servlet处理器
│ │ │ │ └── util Waf软防火墙 - 工具包
│ │ │ │
└── opsli-starter 启动类
└── src
└── main
├── java
│ └── org
│ └── opsli 启动类 - 启动器
└── resources 启动类 - 配置
└── config 启动类 - 其他配置
```
## 作者寄语
感谢Star感恩相遇愿世间美好与我们环环相扣加油屏幕前的我们打破桎梏坚守初心。其实人生改变命运的机会并没有太多我们并不是不优秀我们也并不是一无是处我们也希望驻足山巅被众人仰望也许我们缺少的只是一个机会缺少的只是生命中的导师我希望这个框架帮助到更多的人希望有一天我们面试的时候不再胆怯希望有一天别人看到的不仅仅是你的努力还有你的功成名就出人头地。
## 鸣谢
- <a href="https://www.jetbrains.com/?from=opsli-boot" rel="nofollow">感谢 JetBrains 提供的免费开源 License:</a>
<a href="https://www.jetbrains.com/?from=opsli-boot" rel="nofollow"><img src="https://camo.githubusercontent.com/a4b533abbf1bd277a3943956fa8bed240b02184ccc6b5e9f751ae2f5afd7cfa6/687474703a2f2f7374617469632e786b636f64696e672e636f6d2f737072696e672d626f6f742d64656d6f2f3036343331322e6a7067" width="100px" alt="jetbrains" style="max-width:100%;"></a>
## 版权说明
opsli-boot 采用 Apache License2.0协议
opsli-ui 是对于市面上开源的产品进行的二次开发,请相关开发者遵循对应前端框架的开源协议
代码可用于个人项目等接私活或企业项目脚手架使用,完全免费
二次开发如用于开源竞品请先联系群主沟通,未经审核视为侵权
请不要删除和修改源码头部的版权与作者声明及出处
## 贡献者列表
[![contributors](https://whnb.wang/contributors/hiparker/opsli-boot)](https://github.com/hiparker/opsli-boot)
## Stars 趋势
### Gitee
[![Stargazers over time](https://whnb.wang/stars/hiparker/opsli-boot)](https://github.com/hiparker/opsli-boot)
### Github
[![Stargazers over time](https://starchart.cc/hiparker/opsli-boot.svg)](https://github.com/hiparker/opsli-boot)
## 支持
> 谢谢您愿意支持开源
<div align="center">
<img width="200" src="https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/vx.png"/>
<img width="200" src="https://gitee.com/hiparker/opsli-ui/raw/master/repository-images/zfb.png"/>
</div>