Skip to content

项目介绍

介绍

基于Spring Boot框架打造,针对单体式应用进行专门设计,提供整套服务模块,努力为打造全方位企业级开发解决方案, 致力将开源版打造成超越商业版后台管理框架的项目。

  • 后端使用Spring Boot相关技术栈
  • 前端使用 Vben-Admin 作为脚手架
  • 可视化大屏使用 Go-VIew 作为底层实现
  • 小程序移动端使用 TaroNutUI vue3+TS为技术栈
  • H5移动端使用 Vant4 vue3+TS为技术栈

特色功能

  • 安全体系
    • 基于Sa-Token定制,支持对多终端、多登录方式进行分别的管理
    • 针对重要信息,可以通过添加注解,实现在数据库中保密存储,配合数据脱敏使用可以更好的保护系统数据的安全
    • 针对各类敏感信息,可以通过添加注解实现返回时自动脱敏
    • 基于增强的RBAC权限模型,实现对权限资源进行管理,杜绝垂直越权问题
    • 支持数据决断进行控制,可以指定某用户只能查看指定范围的数据,解决垂直越权的问题
    • 支持设置账号登录策略,多次失败后自动锁定账户,防止登录密码被暴力破解
  • 审计记录
    • 支持对数据进行版本记录,通过Mybatis拦截器自动在数据更新时获取更新前后的数据内容并进行保存
    • 支持对用户登录是否成功进行记录,记录用户登录的IP、浏览器、登录时间等信息
    • 支持对登录用户进行操作日志记录,记录用户操作的页面、时间、提交的数据、返回的数据、耗时等信息
  • 第三方平台
    • 支持通过微信、钉钉、企业微信等第三方开放平台进行扫码登录
    • 支持站内信、微信、钉钉、企业微信、微信公众号的消息推送
  • 日志监控
  • 支持通过ELK和轻量级PlumeLog来管理项目日志,以适应不同的场景
  • 实现轻量级链路追踪,将多个方法间的调用关系自动记录,方便进行跟踪定位问题
  • 开发辅助
    • 提供移动端开发脚手架,方便开发H5与各种小程序
    • 核心模块上传Maven中央仓库,方便快速集成,进行定制开发
    • 封装常用功能,便于快速接入各类功能,简化工作量
    • 支持代码生成器,快速生成代码,提高开发效率
    • 基于GoView打造低代码可视化大屏平台,快速生成各种数据展板和大屏

中间件依赖

组件默认启用是否必须备注
MySQL否,理论上可以替换为其他关系型数据库默认使用的数据库,部分SQL语句使用了MySQL专属语法
Redissession存储,缓存等等都用到了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里、

本文档内容版权属于 Bootx 组织,保留所有权利