# xuxiaowei-cloud
**Repository Path**: aurkas/xuxiaowei-cloud
## Basic Information
- **Project Name**: xuxiaowei-cloud
- **Description**: 基于 JDK 8/11、Spring Boot 2.7.x、OAuth 2.1、Vite 3、Vue 3、Element Plus 的微服务,永久免费开源
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: https://b23.tv/QmDfw9l
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 51
- **Created**: 2022-12-14
- **Last Updated**: 2022-12-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
基于 JDK 8/11、Spring Boot 2.7.x、OAuth 2.1、Vite 3、Vue 3、Element Plus 的微服务
为简化开发工作、提高生产率、解决常见问题而生
## 相关项目
- xuxiaowei-cloud-next
- 使用 Spring Boot 3.0.0,将仓库地址后面增加 `-next` 即可(全平台仓库同名)
1. [GitHub](https://github.com/xuxiaowei-cloud/xuxiaowei-cloud-next)
2. [Gitee](https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud-next)
3. [GitLab](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud-next)
4. [GitCode](https://gitcode.net/xuxiaowei-cloud/xuxiaowei-cloud-next)
5. [GitLink](https://gitlink.org.cn/xuxiaowei-cloud/xuxiaowei-cloud-next)
6. [JiHuLab](https://jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud-next)
## [代码格式规范 spring-javaformat](https://github.com/spring-io/spring-javaformat)
- IntelliJ IDEA
-
项目添加 [io.spring.javaformat:spring-javaformat-maven-plugin](https://repo1.maven.org/maven2/io/spring/javaformat/spring-javaformat-maven-plugin)
依赖之后,可安装自动格式化插件(无需运行下列命令):[spring-javaformat-intellij-idea-plugin](https://repo1.maven.org/maven2/io/spring/javaformat/spring-javaformat-intellij-idea-plugin)
```shell
./mvnw spring-javaformat:apply
```
或
```shell
mvn spring-javaformat:apply
```
## [阿里云盘分享](https://www.aliyundrive.com/s/QaUy1DQRkV4)
## [语雀文档](https://www.yuque.com/xuxiaowei-com-cn)
1. [GitLab、kubernetes(k8s)、私库等](https://www.yuque.com/xuxiaowei-com-cn/gitlab-k8s)
## 模块
- [依赖分析](./README-dependencies.md)
```
cloud.xuxiaowei
├──xuxiaowei-cloud-starter-parent // 微服务父模块
│ └──gateway // 网关服务
│ └──admin-server // 监控(管理)服务
│ └──passport-ui // 登录服务UI
│ └──passport // 登录服务
│ └──ui // UI
│ └──resource-services-parent // 资源服务父模块
│ └──canal // 阿里巴巴 MySQL binlog 增量订阅、消费服务
│ └──master-data // 主数据服务
│ └──user // 用户服务
│ └──websocket // WebSocket 服务
│ └──webservice // WebService 服务
│ └──wechat-miniprogram // 微信小程序服务
│ └──wechat-offiaccount // 微信公众号服务
│ └──utils // 工具类
│ └──cloud-commons-parent // 微服务公共组件父模块
│ └──cloud-starter-core // 核心组件
│ └──cloud-starter-idempotent // 幂等组件
│ └──cloud-starter-loadbalancer // 负载均衡组件
│ └──cloud-starter-log // 日志组件
│ └──cloud-starter-mybatis // MyBatis 组件
│ └──cloud-starter-oauth2 // OAuth2 组件
│ └──cloud-starter-openfeign // OpenFeign 组件
│ └──cloud-starter-redis // Redis 组件
│ └──cloud-starter-session-redis // Session Redis 组件
│ └──cloud-starter-validation // 验证组件
│ └──xxl-job-admin // XXL JOB Admin
│ └──example-parent // 示例模块(独立模块)
│ └──oauth2-client // OAuth 2.0 客户端(独立服务)
│ └──cxf-client // CXF 2.0 客户端(独立服务)
```
### 端口
| 模块 | 模块名称 | 域名(虚拟) | 端口 |
|--------------------|-----------------------------|----------------------------------------|-------|
| Nacos | 注册、配置中心 | nacos.example.xuxiaowei.cloud | 8848 |
| MySQL | 数据库 | mysql.example.xuxiaowei.cloud | 3306 |
| Redis | 数据库 | redis.example.xuxiaowei.cloud | 6379 |
| canal-deployer | 阿里巴巴 MySQL binlog 增量订阅&消费组件 | canal-deployer.example.xuxiaowei.cloud | 11111 |
| sentinel-dashboard | 流控防护组件 | | 22222 |
| | | | |
| ui | UI | example.xuxiaowei.cloud | 1001 |
| gateway | 网关 | gateway.example.xuxiaowei.cloud | 1101 |
| admin-server | 监控(管理) | admin-server.example.xuxiaowei.cloud | 1201 |
| passport | 登录 | passport.example.xuxiaowei.cloud | 1401 |
| passport-ui | 登录UI | passport.example.xuxiaowei.cloud | 1411 |
| canal | 阿里巴巴 MySQL binlog 增量订阅、消费服务 | | 1601 |
| user | 用户服务 | | 1701 |
| websocket | WebSocket 服务 | | 1801 |
| webservice | WebService 服务 | | 1901 |
| wechat-miniprogram | 微信小程序服务 | | 2001 |
| wechat-offiaccount | 微信公众号服务 | | 2101 |
| master-data | 主数据服务 | | 2201 |
| xxl-job-admin | XXL Job Admin | | 5101 |
| oauth2-client | OAuth 2.0 客户端(独立服务) | | 10001 |
| cxf-client | CXF 客户端(独立服务) | | 10002 |
- 流控防护限流端口
| 模块 | 模块名称 | 限流端口 |
|--------------------|---------------|------|
| gateway | 网关 | 9001 |
| passport | 登录 | 9002 |
| user | 用户服务 | 9003 |
| websocket | WebSocket 服务 | 9004 |
| webservice | WebService 服务 | 9005 |
| wechat-miniprogram | 微信小程序服务 | 9006 |
| wechat-offiaccount | 微信公众号服务 | 9007 |
| master-data | 主数据服务 | 9008 |
### 用户名与密码
| 账户名 | 密码 | 启用 |
|-----------|-----|-----|
| xuxiaowei | 123 | 1 |
### 其他服务
| 名称 | 地址 | 账户名 | 密码 |
|---------|-----------------------------------------------------|-------|--------|
| XXL Job | http://127.0.0.1:5101/xxl-job-admin | admin | 123456 |
| Swagger | http://127.0.0.1:1101/webjars/swagger-ui/index.html | | |
### 权限
| 账户名 | 权限 | 说明 |
|-----------|------------------------------------|------------------|
| xuxiaowei | audit_authorization_consent_delete | 删除授权同意书 |
| xuxiaowei | audit_authorization_consent_read | 查看授权同意书 |
| xuxiaowei | audit_authorization_delete | 删除授权记录 |
| xuxiaowei | audit_authorization_read | 查看授权记录 |
| xuxiaowei | clientId_token_delete | 客户Token 删除权限 |
| xuxiaowei | dict_add | 添加字典权限 |
| xuxiaowei | dict_delete | 删除字典权限 |
| xuxiaowei | dict_edit | 修改字典权限 |
| xuxiaowei | dict_read | 查看字典权限 |
| xuxiaowei | manage_client_add | 管理客户 添加权限 |
| xuxiaowei | manage_client_delete | 管理客户 删除权限 |
| xuxiaowei | manage_client_edit | 管理客户 修改权限 |
| xuxiaowei | manage_client_read | 管理客户 读取权限 |
| xuxiaowei | manage_user_add | 管理用户 查询权限 |
| xuxiaowei | manage_user_authority | 管理用户 授权权限 |
| xuxiaowei | manage_user_delete | 管理用户 删除权限 |
| xuxiaowei | manage_user_edit | 管理用户 修改权限 |
| xuxiaowei | manage_user_read | 管理用户 查询权限 |
| xuxiaowei | region_read | 查看省市区县镇居委会权限 |
| xuxiaowei | username_token_delete | 用户Token 删除权限 |
| xuxiaowei | user_authorities | 查看用户权限 |
| xuxiaowei | user_details | 查看用户详情 |
| xuxiaowei | user_info | 查看用户信息 |
| xuxiaowei | user_oauth2_oauth2Request | 查看 oauth2 用户请求 |
| xuxiaowei | user_oauth2_userAuthentication | 查看 oauth2 用户身份验证 |
### 客户ID与秘钥
| 字段 | id | client_id | client_id_issued_at | client_secret | client_secret_expires_at | client_authentication_methods | authorization_grant_types | redirect_uris | scopes | require-authorization-consent | authorization-code-time-to-live | access-token-time-to-live | refresh-token-time-to-live |
|-----------|-----|----------------------------------------|---------------------|--------------------------------------------|--------------------------|----------------------------------------|--------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------|-------------------------------|---------------------------------|---------------------------|----------------------------|
| 说明 | 主键 | 客户ID | 客户ID发布时间 | 客户秘钥 | 客户秘钥过期时间 | 授权认证方法 | 授权类型 | 授权码重定向地址 | 范围 | 是否需要客户授权同意 | 授权code有效时间 | 授权Token有效时间 | 刷新Token有效时间 |
| 网站使用 | 1 | xuxiaowei_client_id | 2022-05-30 17:17:41 | xuxiaowei_client_secret | | client_secret_post,client_secret_basic | refresh_token,implicit,client_credentials,authorization_code | http://127.0.0.1:1401/code,http://gateway.example.xuxiaowei.cloud:1101/passport/code,https://gateway.example.xuxiaowei.cloud/passport/code | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
| 微信小程序使用 | 2 | xuxiaowei_client_wechat_miniprogram_id | 2022-05-30 17:17:41 | xuxiaowei_client_wechat_miniprogram_secret | | client_secret_post,client_secret_basic | refresh_token,wechat_miniprogram | | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
| 微信公众号使用 | 3 | xuxiaowei_client_wechat_offiaccount_id | 2022-05-30 17:17:41 | xuxiaowei_client_wechat_offiaccount_secret | | client_secret_post,client_secret_basic | refresh_token,wechat_offiaccount | | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
| 微信扫码使用 | 4 | xuxiaowei_client_wechat_oplatform_id | 2022-05-30 17:17:41 | xuxiaowei_client_wechat_oplatform_secret | | client_secret_post,client_secret_basic | refresh_token,wechat_oplatform_website | | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
| 码云Gitee使用 | 5 | xuxiaowei_client_gitee_id | 2022-05-30 17:17:41 | xuxiaowei_client_gitee_secret | | client_secret_post,client_secret_basic | refresh_token,gitee | | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
| QQ扫码使用 | 6 | xuxiaowei_client_qq_website_id | 2022-05-30 17:17:41 | xuxiaowei_client_qq_website_secret | | client_secret_post,client_secret_basic | refresh_token,qq_website | | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
| 微博扫码使用 | 7 | xuxiaowei_client_weibo_id | 2022-05-30 17:17:41 | xuxiaowei_client_weibo_secret | | client_secret_post,client_secret_basic | refresh_token,weibo_website | | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 |
- authorization_grant_types
- 授权码模式 authorization_code
- 刷新Token权限 refresh_token
- 客户端凭证模式 client_credentials
- 密码模式 password
- 简化模式 implicit
- 微信小程序(个人开发适配 OAuth 2.1、微信小程序的授权方式) wechat_miniprogram
### [Docker 说明](./docker)
### [常用 exe 说明](./exe)
### [Git](./git)
### [Gitlab Runner](./gitlab-runner)
### [Linux 脚本说明](./sh)
### [SQL](./sql)
### [Windows 脚本说明](./winsw)
## 仓库与分支?
1. 使用了哪六个仓库?
1. [Gitee](https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud)
2. [GitCode](https://gitcode.net/xuxiaowei-cloud/xuxiaowei-cloud)
3. [GitHub](https://github.com/xuxiaowei-cloud/xuxiaowei-cloud)
4. [GitLab](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud)
5. [GitLink](https://gitlink.org.cn/xuxiaowei-cloud/xuxiaowei-cloud)
6. [JiHuLab](https://jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud)
2. 上述六个仓库以哪个为准?其余仓库何时同步?
1. 以 [Gitee](https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud) 为准
2. 其余仓库每日同步
3. 各个仓库的作用?
1. [Gitee](https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud) 供国内用户访问、提问、下载资源、Gitee Go流水线
2. [GitLab](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud) 2022-06-06 之前使用 GitLab
的 [CICD 流水线](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud/-/pipelines) 自动构建资源(`.jar`、`.jar.asc`
、`.pom`、`.pom.asc`、`-javadoc.jar`、`-javadoc.jar.asc`、`-sources.jar`、`-sources.jar.asc`),
自动将资源发布(目前仅[打包](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud/-/blob/main/.gitlab-ci.yml),未发布)到
[中央仓库](https://s01.oss.sonatype.org/content/repositories/releases/cloud/xuxiaowei)
3. [GitCode](https://gitcode.net/xuxiaowei-cloud/xuxiaowei-cloud) 2022-06-06
之后用于替换 [GitLab](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud)
的 [CICD 流水线](https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud/-/pipelines) ,
[GitCode](https://gitcode.net/xuxiaowei-cloud/xuxiaowei-cloud) 流水线配额 `2000` 分钟(已申请到内侧资格)
4. [GitHub](https://github.com/xuxiaowei-cloud/xuxiaowei-cloud)
使用 [CodeQL](https://github.com/xuxiaowei-cloud/xuxiaowei-cloud/actions/workflows/codeql-analysis.yml)
每日扫描项目中的 `main` 分支是否存在漏洞
5. [GitLink](https://gitlink.org.cn/xuxiaowei-cloud/xuxiaowei-cloud) 国内备份仓库
6. [JiHuLab](https://jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud) 国内备份仓库
4. 各分支的作用?
1. `main`
- 主分支
- 不可推送,只能合并
2. `xuxiaowei`开头的分支
- 个人分支,按功能`PR`到主分支`main`
3. `pages`
- 文档分支
4. `OAuth2.0`
- 历史版本分支,使用 OAuth 2.0 进行授权,后续不再维护(主分支使用 OAuth 2.1)
5. `only-passport`
- 删除了`passport-ui`模块,在`passport`中使用`CDN`引入`element-plus`、`vue`进行网页编写(不推荐,后续不再维护)
## 参考文档
1. [alibaba p3c](https://github.com/alibaba/p3c)
- [GitCode 镜像仓库](https://gitcode.net/mirrors/alibaba/p3c)
- [Gitee 镜像仓库](https://gitee.com/mirrors/P3C)
2. [十二要素应用宣言](https://12factor.net/zh_cn/)
3. [百度云 BOS](https://cloud.baidu.com/doc/BOS/index.html)
1. [安装SDK工具包](https://cloud.baidu.com/doc/BOS/s/4jwvyrq6p)
2. [BOS-CMD命令行工具>概述](https://cloud.baidu.com/doc/BOS/s/Sjwvyqetg)
3. [安装BOSCMD](https://cloud.baidu.com/doc/BOS/s/qjwvyqegc)
4. [配置BOSCMD](https://cloud.baidu.com/doc/BOS/s/Ejwvyqe55)
4. [腾讯云 COS](https://cloud.tencent.com/document/product/436)
1. [快速入门](https://cloud.tencent.com/document/product/436/10199)
2. [COSCMD 工具](https://cloud.tencent.com/document/product/436/10976)
3. [COSCLI 简介](https://cloud.tencent.com/document/product/436/63143)
5. [华为云 OBS](https://support.huaweicloud.com/obs/index.html)
1. [SDK下载](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0001.html)
2. [示例程序](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0002.html)
3. [下载和安装obsutil](https://support.huaweicloud.com/utiltg-obs/obs_11_0003.html)
6. [阿里云 OSS](https://help.aliyun.com/product/31815.html)
1. [Java SDK快速入门](https://help.aliyun.com/document_detail/195870.html)
2. [命令行工具ossutil快速入门](https://help.aliyun.com/document_detail/195960.html)
7. [清华大学开源软件镜像站 CentOS](https://mirror.tuna.tsinghua.edu.cn/help/centos/)
8. [清华大学开源软件镜像站 Ubuntu](https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/)
9. [阿里云镜像站 CentOS](https://developer.aliyun.com/mirror/centos)
10. [阿里云镜像站 Ubuntu](https://developer.aliyun.com/mirror/ubuntu)
11. [网易镜像 CentOS](https://mirrors.163.com/.help/centos.html)
12. [网易镜像 Ubuntu](http://mirrors.163.com/.help/ubuntu.html)
13. [阿里云 Maven 镜像](https://developer.aliyun.com/mirror/maven)
14. [阿里云云效 使用指南](https://developer.aliyun.com/mvn/guide)
15. [阿里云云效 文件搜索](https://developer.aliyun.com/mvn/search)
16. [阿里云云效 仓库文件](https://developer.aliyun.com/mvn/view)
17. [阿里云 NPM](https://developer.aliyun.com/mirror/NPM)
18. [阿里云 nodejs-release 镜像](https://developer.aliyun.com/mirror/nodejs-release)
19. [阿里云 mysql 镜像](https://developer.aliyun.com/mirror/mysql)
20. [阿里云 ubuntu-releases 镜像](https://developer.aliyun.com/mirror/ubuntu-releases)
21. [阿里云 CentOS 镜像](https://developer.aliyun.com/mirror/centos)
22. [QQ邮箱-如何使用IMAP服务?](https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=331)
1. 登录[QQ邮箱](https://mail.qq.com)
2. [设置] --> [帐户] --> [生成授权码](./static/QQ-授权码.png)
23. [XXL Job](https://www.xuxueli.com/xxl-job)
24. [WebSocket 路由过滤器](https://cloud.spring.io/spring-cloud-gateway/reference/html/#the-websocket-routing-filter)
25. [网关流量控制](https://sentinelguard.io/zh-cn/docs/api-gateway-flow-control.html)
26. [阿里云 短信服务](https://dysms.console.aliyun.com/overview)
1. [文档](https://next.api.aliyun.com/product/Dysmsapi)
27. [Git飞行规则(Flight Rules)](https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md)
28. [提问的智慧](https://gitcode.net/mirrors/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/-/blob/master/README-zh_CN.md)
## 开发工具
1. IDEA 2022.2.3
- [Windows 安装版](https://download.jetbrains.com.cn/idea/ideaIU-2022.2.3.exe)
- [Windows 解压版](https://download.jetbrains.com.cn/idea/ideaIU-2022.2.3.win.zip)
- [Linux](https://download.jetbrains.com.cn/idea/ideaIU-2022.2.3.tar.gz)
- [Mac dmg](https://download.jetbrains.com.cn/idea/ideaIU-2022.2.3.dmg)
- [Mac aarch64 dmg](https://download.jetbrains.com.cn/idea/ideaIU-2022.2.3-aarch64.dmg)
- [申请开源开发许可证](https://www.jetbrains.com/shop/eform/opensource)
- 插件
1. [ Alibaba Cloud AI Coding Assistant](https://plugins.jetbrains.com/plugin/17809-alibaba-cloud-ai-coding-assistant)
2. [Alibaba Java Coding Guidelines](https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines)
3. [GenerateSerialVersionUID](https://plugins.jetbrains.com/plugin/185-generateserialversionuid)
4. [GenerateAllSetter](https://plugins.jetbrains.com/plugin/9360-generateallsetter)
5. [ MurphySec Code Scan](https://plugins.jetbrains.com/plugin/18274-murphysec-code-scan)
6. [ MyBatisX](https://plugins.jetbrains.com/plugin/10119-mybatisx)
7. [RestfulToolkit](https://plugins.jetbrains.com/plugin/10292-restfultoolkit)
8. [RoboPOJOGenerator](https://plugins.jetbrains.com/plugin/8634-robopojogenerator)
9. [Statistic](https://plugins.jetbrains.com/plugin/4509-statistic)
10. [ Translation](https://plugins.jetbrains.com/plugin/8579-translation)
11. [ Vue.js](https://plugins.jetbrains.com/plugin/9442-vue-js)
12. [spring-javaformat-intellij-idea-plugin](https://repo1.maven.org/maven2/io/spring/javaformat/spring-javaformat-intellij-idea-plugin)
2. Alibaba dragonwell 8.10.11
- [Alibaba_Dragonwell_jdk-8.10.11_aarch64_linux.tar.gz](https://dragonwell.oss-cn-shanghai.aliyuncs.com/8.10.11/Alibaba_Dragonwell_8.10.11_aarch64_linux.tar.gz)
- [Alibaba_Dragonwell_jdk-8.10.11_x64_alpine-linux.tar.gz](https://dragonwell.oss-cn-shanghai.aliyuncs.com/8.10.11/Alibaba_Dragonwell_8.10.11_x64_alpine-linux.tar.gz)
- [Alibaba_Dragonwell_jdk-8.10.11_x64-linux.tar.gz](https://dragonwell.oss-cn-shanghai.aliyuncs.com/8.10.11/Alibaba_Dragonwell_8.10.11_x64_linux.tar.gz)
- [Alibaba_Dragonwell_jdk-8.10.11_x86_windows.zip](https://dragonwell.oss-cn-shanghai.aliyuncs.com/8.10.11/Alibaba_Dragonwell_8.10.11_x86_windows.zip)
3. Apache Maven 3.6.3
- [apache-maven-3.6.3-bin.zip](https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip)
- [apache-maven-3.6.3-bin.tar.gz](https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz)
4. node v16.15.1
- [nodejs](https://nodejs.org/dist/v16.15.1)
- [aliyun](http://mirrors.aliyun.com/nodejs-release/v16.15.1)
5. npm 8.3.1
6. @vue/cli-plugin-eslint 5.0.3 Standard、eslint 7.32.0
7. SVG转PNG
1. https://www.aconvert.com/cn/image/svg-to-png/
2. https://svgtopng.com/zh/
## 鸣谢
1. 感谢 [](https://www.murphysec.com/)
提供安全技术支持,邀请码:[http://xxw.ac.cn/murphysec](http://xxw.ac.cn/murphysec)
2. 感谢 [](https://www.jetbrains.com/)
提供开发工具 [](https://www.jetbrains.com/idea) 的免费授权
## Stargazers over time
[](https://starchart.cc/xuxiaowei-cloud/xuxiaowei-cloud)