# bopu **Repository Path**: Mark-coding/bopu ## Basic Information - **Project Name**: bopu - **Description**: 一套Spring Cloud 微服务,主要系统包括单点登录和用户管理两部分 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: dev3.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2025-08-24 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bopu #### 介绍 一套Spring Cloud 微服务,主要系统包括单点登录和用户管理两部分。 单点登录主要功能包括: 多平台统一登录、平台个性化token缓存时间、登录用户token及权限校验 用户管理系统主要功能包括: 多平台菜单配置管理、用户权限配置、用户临时权限配置,其中用户权限包扣角色级、菜单级、按钮级、数据权限级四个级别, 其中角色菜单按钮根据配置的平台菜单配置,权限级则由数据业务配置 #### 项目亮点 * 基于Druid + Dynamic + AOP 实现读写分离及多库轮询 * 读写分离相关代码:[datasource](bopu-sso%2Fbopu-sso-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fsso%2Fconfig%2Fdatasource) * 数据源切换及轮询:[DataSourceContextHolder.java](bopu-sso%2Fbopu-sso-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fsso%2Fconfig%2Fdatasource%2FDataSourceContextHolder.java) * 基于AOP + gateway过滤器实现全链路唯一日志ID及公共日志打印 * gateway过滤器:[ReqFilter.java](bopu-gateway%2Fbopu-gateway-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fgateway%2Fconfig%2Ffilter%2FReqFilter.java) * 请求拦截器:[ReqInterceptor.java](bopu-sso%2Fbopu-sso-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fsso%2Fconfig%2Finterceptor%2FReqInterceptor.java) * AOP日志:[ControllerLogAspect.java](bopu-base%2Fbopu-base-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fconfig%2Faspect%2FControllerLogAspect.java) * 自定义注解 + AOP日志 [LogTrace.java](bopu-base%2Fbopu-base-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fconfig%2Fannotation%2FLogTrace.java), [LogTraceAspect.java](bopu-base%2Fbopu-base-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fconfig%2Faspect%2FLogTraceAspect.java) * 基于断言 + 自定义异常 + AOP实现断言校验及异常处理 * 自定义异常:[exception](bopu-base%2Fbopu-base-common%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fcommon%2Fexception) * 断言接口及枚举: [IAssert.java](bopu-base%2Fbopu-base-common%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fcommon%2Fassertion%2FIAssert.java), [AssertEnum.java](bopu-base%2Fbopu-base-common%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fcommon%2Fenums%2Fexception%2FAssertEnum.java) * AOP异常捕获: [AssertAspect.java](bopu-base%2Fbopu-base-config%2Fsrc%2Fmain%2Fjava%2Fcom%2Fbopu%2Fbase%2Fconfig%2Faspect%2FAssertAspect.java) #### 软件架构 软件架构说明 #### 组织结构 bopu Java项目: |-- bopu-gateway 服务网关 |-- bopu-upms 用户权限管理系统 |-- bopu-sso 单点登录系统 Alibaba组件 |-- nacos-server 服务注册与配置仲夏 |-- sentinel-dashboard 限流与监控 Vue项目: (待定) |-- bopu-web 前端 #### 技术选型 后端技术: Spring Cloud ------ 微服务框架 |-- OpenFeign 服务调用 |-- GateWay 服务网关 |-- Alibaba Nacos 注册与配置中心 |-- Sentinel Dashboard 控制台 Spring Boot ------- 简化配置 MySql ------------- 数据库 Dynamic ----------- 多数据源 Alibaba Druid ----- 数据连接池 Mybatis Puls ------ 数据库交互 Redis ------------- 缓存处理 Spring Security --- 密码加密 Spring Aop -------- 切面类 Spring Doc -------- 接口文档 Jwt --------------- Token生成管理 Hutool ------------ util工具库 #### 模块介绍 bopu-base 基础模块 ... bopu-gateway 服务网关 ... ------------------------------------------------- bopu-upms 用户管理系统 | bopu-upms-api -- 对外提供接口(http、feign生产者、MQ) | bopu-upms-common -- 公共组件模块(枚举、常量、util等) | bopu-upms-config -- 配置(拦截器、aop、组件、系统配置等) | bopu-upms-web -- 请求处理层(controller) | bopu-upms-service -- 业务逻辑层(service、feign消费者) | bopu-upms-manager -- 通用处理层(manager) | bopu-upms-dao -- 数据持久层(dao) | bopu-upms-domain -- 数据模型(entity、vo、dto等) | bopu-upms-work -- 工作空间(启动类、配置文件) ------------------------------------------------- bopu-sso 单点登录系统 ... #### 数据模型 ![BOPU-UPMS.png](model%2Fdata-model%2FBOPU-UPMS.png) #### 单点登录流程模型 ![sso.png](model%2Fproject-model%2Fsso.png) #### 技术选型 前端技术: Vue --------------- 前端框架 Vue --------------- Cli 3.x 脚手架 Vuex -------------- 状态管理 Vue Router -------- 路由管理 Axios ------------- 异步请求 SCSS -------------- css预处理器 Element UI -------- 组件库 #### 系统详解 用户管理 - Vue前端(待定) | bopu-upms-web views |-- 首页 home/index.vue |-- 平台应用管理(权限归属:开发人员、运维人员...) ... |-- 用户角色管理 user |-- 用户管理(用户信息管理) userManage.vue |-- 用户角色管理(用户角色配置) userRoleManage.vue |-- 角色应用管理(角色菜单权限配置) roleApplicationManage.vue |-- 角色应用资源管理(角色菜单按钮权限配置) roleApplicationResourcesManage.vue |-- 角色权限配置(角色数据权限配置) roleResources.vue |-- 用户临时权限管理 temporary |-- 用户临时应用管理 (用户临时菜单权限配置) userTemporaryApplicationManage.vue |-- 用户临时应用资源管理 (用户临时菜单按钮权限配置) userTemporaryApplicationResourcesManage.vue |-- 用户临时权限管理 (用户临时数据权限配置) userTemporaryResources.vue |-- 应用管理 application |-- 应用管理 (菜单管理) applicationManage.vue |-- 应用资源管理 (菜单按钮级权限配置) applicationResourcesManage.vue |-- 权限管理 authority |-- 权限管理(数据权限配置) authorityManage.vue #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)