# Base-Platform-Server
**Repository Path**: LateWinter/Base-Platform-Server
## Basic Information
- **Project Name**: Base-Platform-Server
- **Description**: springboot后台管理系统,基于shiro or auth2认证
1.redis单机、哨兵、集群统一配置
2.接口内容非对称加解密
3.使用注解方式进行接口版本控制
4.提供动态注入数据源方法、查看当前所有数据源,与主数据源,后期可扩展多租户
- **Primary Language**: Java
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-07-10
- **Last Updated**: 2022-02-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# springboot脚手架
## 一、项目介绍
基于日常项目开发积累,划分 Web PC 前端、后端 和 移动端 三个脚手架,同时提供基于改脚手架的代码生成器,旨在利用成熟方案快速实践,避免重复开发。利用代码生成器,使用统一的编码规范。
- 前端脚手架 - element-ui 版
- 后端脚手架 - mybatis-plus 版
- 移动端脚手架 - uni-app 版
- 基于脚手架的代码生成器
## 二、项目结构及说明
### 1、前端脚手架
前端脚手架基于 开源框架 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) 开发,遵循其开发规范和编码风格。目录结构如下:
```text
scaffolding-front-pc
build
mock
public
src
api // 放 API, 按 模块名/功能名.js
asserts
compponents // 通用组件
directice // 指令,如权限指令(可分按角色、按权限标识)
filters // 过滤器,可用于数据格式化
icon // 自定义 icon
layout
router // 需支持 动态路由 和 mock 或 静态路由
store
styles
utils // 通用工具类
vendor
views // 业务视图,按 模块名划分 + components (业务相关通用组件)等
App.vue
main.js // 全局注册
permission.js // 前端路由权限控制
setting.js // 设置默认风格,可扩展后端支持配置
```
脚手架除了支持上述开源框架默认支持的:国际化、动态路由、权限验证和业务模型及功能组件外,还会支持:基础权限功能(人员、角色、资源、权限分配、字典表)、扩展组件支持(组合查询组件、下拉、复选、单选、表格、表单等封装),形成标准规范、简化编码。
### 2、后端脚手架 [教程](http://192.168.10.120:8000/zh/guide/notes/service-use-guide.html#%E8%AF%B4%E6%98%8E/)
后端脚手架基于 开源框架 [MyBatis-Plus](https://mp.baomidou.com/) 开发,多模块开发,方便维护,提高复用性。划分目录如下:
```text
sudu-common-parent // 业务相关 通用类 封装,如:GIS 行业相关,工具类封装等,可独立使用
sudu-framework-parent // 基础框架,提供统一数据封装支持,引用即可完成标准功能开发
sudu-permission-shrio-parent // 基于 shrio 权限开发,多模块划分,方便后续扩展 auth2.0 / sso 支持
sudu-admin-base // 与业务相关的基础功能封装,如配置类、工具类
sudu-admin-domain // entity / dto / po 等类
sudu-admin-dao // dao层接口和mapper文件
sudu-admin-service // 基础服务,满足基础CRUD和默认属性设置功能
sudu-admin-manager // 第三方服务封装 + 基础服务(service)组合使用封装
sudu-admin-web // api 层,针对 PC, admin
sudu-admin-mobile // 预留,针对 mobile
sudu-admin-wechat // 预留
sudu-permission-auth-parent // 预留,针对auth / sso / security 等实现
// 扩展思路:与sudu-admin-web一样,引用 service、manager 层,重写 web 层即可
```
### 3、uni-app脚手架
支持公众号、微信小程序、混合App和H5开发,目前暂时无计划。
``
## 三、使用说明
### 1、前端脚手架
**提示**:为规范接口使用,api 包统一按模块存放接口,可直接引入使用;同时一些系统级别的业务,诸如:角色、资源、消息等等,需要统一数据状态的,则建议使用 store维护一致性。不建议直接在业务中直接使用 axios 和 写具体 URL (封装组件除外)。
### 2、后端脚手架 [教程](http://192.168.10.120:8000/zh/guide/notes/service-use-guide.html#%E8%AF%B4%E6%98%8E/)
**提示**:根据高内聚、低耦合原则, service 层,同模块内部可以依赖(同层不可互相调用)。但跨模块需放到manager层,针对service进行组合使用,注意事务一致性,同数据源在 Manager实现类上增加DS注解,不同数据源需要考虑事务补偿机制(若未使用分布式事务)。
### 3、代码生成器 [教程](http://192.168.10.120:8000/zh/guide/notes/service-use-guide.html#%E5%85%AD%E3%80%81%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8%E4%BD%BF%E7%94%A8)
1. 前端支持生成
- [x] api 按 模块 生成, store 可选择使用
- [x] 基础 table + form + detail (基础表格、表单、详情)界面
- [ ] 可视化方式(计划支持上述标准界面、图表、GIS)
- [ ] 前端工程脚手架(element-ui、ant design 等等)
2. 后端支持生成
- [x] 基础CRUD代码
- [x] 单元测试代码
- [ ] Mock 数据 - 辅助自动化测试
- [ ] 后端工程脚手架(支持下载自动分包)
**注意**:中间表的代码只需使用Dao、Mapper、entity 即可。
## 参考规范
- [vue-element-admin](https://panjiachen.gitee.io/vue-element-admin-site/zh/) 提供 api、store、基础界面、组件封装 的使用和命名等规范。
- 后端主要参考 [阿里巴巴 Java开发手册](https://download.csdn.net/download/heidashou/12367433)、[Google Java编码规范指南](https://download.csdn.net/download/jihong10102006/9985882)。