Appearance
项目介绍 ¶
介绍 ¶
基于Spring Boot框架打造,针对单体式应用进行专门设计,提供整套服务模块,努力为打造全方位企业级开发解决方案, 致力将开源版打造成超越商业版后台管理框架的项目。
- 后端使用Spring Boot相关技术栈
- 前端使用 Vben-Admin 作为脚手架
- 可视化大屏使用 Go-VIew 作为底层实现
- 小程序移动端使用 Taro、NutUI vue3+TS为技术栈
- H5移动端使用 Vant4 vue3+TS为技术栈
特色功能 ¶
- 安全体系
- 基于Sa-Token定制,支持对多终端、多登录方式进行分别的管理
- 针对重要信息,可以通过添加注解,实现在数据库中保密存储,配合数据脱敏使用可以更好的保护系统数据的安全
- 针对各类敏感信息,可以通过添加注解实现返回时自动脱敏
- 基于增强的RBAC权限模型,实现对权限资源进行管理,杜绝垂直越权问题
- 支持数据决断进行控制,可以指定某用户只能查看指定范围的数据,解决垂直越权的问题
- 支持设置账号登录策略,多次失败后自动锁定账户,防止登录密码被暴力破解
- 审计记录
- 支持对数据进行版本记录,通过Mybatis拦截器自动在数据更新时获取更新前后的数据内容并进行保存
- 支持对用户登录是否成功进行记录,记录用户登录的IP、浏览器、登录时间等信息
- 支持对登录用户进行操作日志记录,记录用户操作的页面、时间、提交的数据、返回的数据、耗时等信息
- 第三方平台
- 支持通过微信、钉钉、企业微信等第三方开放平台进行扫码登录
- 支持站内信、微信、钉钉、企业微信、微信公众号的消息推送
- 日志监控
- 支持通过ELK和轻量级PlumeLog来管理项目日志,以适应不同的场景
- 实现轻量级链路追踪,将多个方法间的调用关系自动记录,方便进行跟踪定位问题
- 开发辅助
- 提供移动端开发脚手架,方便开发H5与各种小程序
- 核心模块上传Maven中央仓库,方便快速集成,进行定制开发
- 封装常用功能,便于快速接入各类功能,简化工作量
- 支持代码生成器,快速生成代码,提高开发效率
- 基于GoView打造低代码可视化大屏平台,快速生成各种数据展板和大屏
中间件依赖 ¶
组件 | 默认启用 | 是否必须 | 备注 |
---|---|---|---|
MySQL | 是 | 否,理论上可以替换为其他关系型数据库 | 默认使用的数据库,部分SQL语句使用了MySQL专属语法 |
Redis | 是 | 是 | session存储,缓存等等都用到了Redis,运行是必须配置 |
Quartz | 是 | 否 | 定时任务默认使用的是Quartz ,可以切换为XXL-JOB,持久化使用数据库,默认不需要进行配置 |
MongoDB | 否 | 否 | 启动时会报警告,不使用时需要删除对应的代码即可 |
RabbitMQ | 否 | 否 | 启动时会报警告,不使用时需要删除对应的代码即可 |
项目整体结构 ¶
lua
bootx-platform
├── _config -- 项目相关配置
├── _doc -- 项目文档
├── _license -- 使用外部项目对应开源协议
├── bootx-common-core -- 核心包
├── bootx-common-starters -- starter通用功能组件
├── common-starter-audit-log -- 审计日志模块
├── common-starter-auth -- 认证模块
├── common-starter-code-gen -- 代码生成模块
├── common-starter-data-perm -- 数据权限模块
├── common-starter-dingtalk -- 钉钉对接模块
├── common-starter-file -- 文件管理模块
├── common-starter-flowable -- flowable工作流模块
├── common-starter-monitor -- 系统监控模块
├── common-starter-quartz -- Quartz定时任务模块
├── common-starter-wechat -- 微信对接模块
├── common-starter-wecom -- 企业微信对接模块
├── bootx-commons -- commons工具配置封装
├── common-cache -- 缓存配置
├── common-exception-handler -- 异常处理器
├── common-header-holder -- 请求头获取工具
├── common-idempotency -- 幂等控制组件
├── common-jackson -- Json序列化配置
├── common-log -- 日志配置
├── common-mongo -- MongoDB配置
├── common-mybatis-plus -- Mybatis Plus扩展
├── common-rabbitmq -- rabbitmq消息队列
├── common-redis-client -- Redis客户端封装和配置
├── common-sequence -- 发号器(序列号生成器)
├── common-spring -- Spring相关配置
├── common-super-query -- 超级查询器
├── common-swagger -- swagger3配置(Spring Doc)
├── common-websocket -- websocket封装
├── common-xxl-job -- XXL-JOB定时任务
├── bootx-demo -- demo示例模块
├── bootx-services -- 业务服务模块
├── service-baseapi -- 基础api功能服务
├── service-iam -- 身份识别与访问管理
├── service-miniapp -- 小程序服务
├── service-notice -- 消息通知服务
├── service-visualization -- 可视化大屏管理
├── bootx-start -- 启动模块
模块结构说明 ¶
模块分包设计 以service-iam
举例
lua
service-iam
├── code -- 常量包
├── controller -- 控制器
├── core -- 功能核心
├── exception -- 异常
├── dto -- 业务对象
├── mq -- 消息通知处理
├── task -- 定时任务
├── param -- 请求参数包
├── util -- 内部工具包
├── IamApplication -- 启动类
core核心包业务代码分包
lua
├───core
├── business -- 业务模块
├── convert -- 实体类转换
├── dao -- 持久化类
├── entity -- 数据库实体
├── service -- 服务类
License ¶
Apache License Version 2.0
致谢 ¶
感谢下列开源项目,提供了重要的灵感和思路,引用的开源协议存储在项目根目录下的
_license
里、
- Spring Cloud Gateway整合Swagger2 Demo,全网首例:https://gitee.com/wxdfun/sw
- JEECG BOOT 低代码开发平台:https://github.com/jeecgboot/jeecg-boot
- HZERO-基于微服务架构开源免费的企业级PaaS平台:https://gitee.com/open-hand/hzero
- RuoYi-Vue 全新 Pro 版本:https://gitee.com/zhijiantianya/ruoyi-vue-pro
- Snowy国产密码算法后台权限管理系统:https://gitee.com/xiaonuobase/snowy
- 表单设计器 k-form-design:https://gitee.com/kcz66/k-form-design
- Vue微信菜单编辑器:https://github.com/hopex/vue-menu
- flowable antd vue 的工作流设计器:https://gitee.com/Vincent-Vic/workflow-bpmn-modeler-antdv
- flowable 工作流相关思路和实现 乐之终曲:https://blog.csdn.net/qq_37143673
- GoView 一个Vue3搭建的低代码数据可视化开发平台:https://gitee.com/dromara/go-view
- easy-cron 这是基于Vue.js和iviewui封装一个crontab表达式的组件:https://gitee.com/toktok/easy-cron
- ACTable是对Mybatis做的增强功能,通过配置model注解的方式来创建表,修改表结构,并且实现了共通的CUDR功能提升开发效率:https://gitee.com/sunchenbin/mybatis-enhance
- Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案:https://gitee.com/xiaoym/knife4j
- easy_trans 一个注解搞定数据翻译: https://gitee.com/fhs-opensource/easy_trans
- vxe-table暗黑主题灵感:https://github.com/adoin
- DFA算法实现的敏感词过滤工具: https://gitee.com/humingzhang/wordfilter