基于 JDK 17、Spring Boot 3.x.x、OAuth 2.1、Vite 4、Vue 3、Element Plus 的微服务。
支持支付宝、钉钉、码云、GitHub、GitLab、QQ、微信、企业微信、微博等第三方登录。
包含基于 GitLab Runner 的 kubernetes(k8s)、Docker、Shell 等执行器执行 CI/CD 流水线进行自动构建、制作 Docker 镜像、发布。
永久免费开源。
为简化开发工作、提高生产率、解决常见问题而生
- xuxiaowei-cloud
-
项目添加 io.spring.javaformat:spring-javaformat-maven-plugin 依赖之后,可安装自动格式化插件(无需运行下列命令):spring-javaformat-intellij-idea-plugin
./mvnw spring-javaformat:apply
或
mvn spring-javaformat:apply
- 更新日期:2023-07-27
依赖 | 本项目版本 | 新版 | 说明 |
---|---|---|---|
spring-boot | v3.1.2 | 限制 Spring Boot 3.x,点击查看 Spring Boot 2.7.x 的项目 | |
spring-cloud | v2022.0.3 | 限制 Spring Boot 3.x | |
spring-cloud-alibaba | v2022.0.0.0 | 限制 Spring Boot 3.x,Spring Cloud Alibaba | |
spring-boot-admin | v3.1.3 | 限制 Spring Boot 3.x | |
spring-authorization-server | v1.1.1 | 限制 Spring Boot 3.x | |
mybatis | v3.0.2 | 限制 Spring Boot 3.x,指 mybatis-spring-boot-starter | |
mybatis-plus | v3.5.3.1 | ||
dynamic-datasource | v4.1.2 | 指 dynamic-datasource-spring-boot3-starter | |
springdoc | v2.1.0 | 用于生成 API doc,支持从 javadoc 中获取字段注释 | |
guava | v32.1.1-jre | ||
fastjson | v2.0.37 | 使用的是不带英文后缀的版本 | |
hutool | v5.8.20 |
- 更新日期:2023-07-27
cloud.xuxiaowei
├──xuxiaowei-cloud-next-starter-parent // 微服务父模块
│ └──gateway // 网关服务
│ └──admin-server // 监控(管理)服务
│ └──passport-ui // 登录服务UI
│ └──passport // 登录服务
│ └──ui // UI
│ └──resource-services-parent // 资源服务父模块
│ └──canal // 阿里巴巴 MySQL binlog 增量订阅、消费服务
│ └──file // 文件服务
│ └──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.next.xuxiaowei.cloud | 8848 |
MySQL | 数据库 | mysql.example.next.xuxiaowei.cloud | 3306 |
Redis | 数据库 | redis.example.next.xuxiaowei.cloud | 6379 |
canal-deployer | 阿里巴巴 MySQL binlog 增量订阅&消费组件 | canal-deployer.example.next.xuxiaowei.cloud | 11111 |
sentinel-dashboard | 流控防护组件 | 22222 | |
ui | UI | example.next.xuxiaowei.cloud | 1001 |
gateway | 网关 | gateway.example.next.xuxiaowei.cloud | 1101 |
admin-server | 监控(管理) | admin-server.example.next.xuxiaowei.cloud | 1201 |
passport | 登录 | passport.example.next.xuxiaowei.cloud | 1401 |
passport-ui | 登录UI | passport.example.next.xuxiaowei.cloud | 1411 |
canal | 阿里巴巴 MySQL binlog 增量订阅、消费服务 | 1601 | |
user | 用户服务 | 1701 | |
websocket | WebSocket 服务 | 1801 | |
webservice | WebService 服务 | 1901 | |
wechat-miniprogram | 微信小程序服务 | 2001 | |
wechat-offiaccount | 微信公众号服务 | 2101 | |
master-data | 主数据服务 | 2201 | |
file | 文件服务 | 2301 | |
xxl-job-admin | XXL Job Admin | 5101 | |
oauth2-client | OAuth 2.0 客户端(独立服务) | 10001 | |
cxf-client | CXF 客户端(独立服务) | 10002 |
- 流控防护限流端口
账户名 | 密码 | 启用 |
---|---|---|
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 | ||
服务 Swagger | http://127.0.0.1:端口/swagger-ui/index.html | ||
docker 守护程序的 URL | http://host.docker.example.next.xuxiaowei.cloud:2375 | ||
docker 私库 URL | registry.docker.example.next.xuxiaowei.cloud | admin | xuxiaowei |
账户名 | 权限 | 说明 |
---|---|---|
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 | 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.next.xuxiaowei.cloud:1101/passport/code,https://gateway.example.next.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 | ||
gitlab使用 | 8 | xuxiaowei_client_gitlab_id | 2022-05-30 17:17:41 | xuxiaowei_client_gitlab_secret | client_secret_post,client_secret_basic | refresh_token,gitlab | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 | ||
企业微信扫码使用 | 9 | xuxiaowei_client_wechat_work_website_id | 2022-05-30 17:17:41 | xuxiaowei_client_wechat_work_website_secret | client_secret_post,client_secret_basic | refresh_token,wechat_work_website | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 | ||
github使用 | 10 | xuxiaowei_client_github_id | 2022-05-30 17:17:41 | xuxiaowei_client_github_secret | client_secret_post,client_secret_basic | refresh_token,github | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 | ||
钉钉dingtalk使用 | 11 | xuxiaowei_client_dingtalk_id | 2022-05-30 17:17:41 | xuxiaowei_client_dingtalk_secret | client_secret_post,client_secret_basic | refresh_token,dingtalk | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 | ||
QQ小程序使用 | 12 | xuxiaowei_client_qq_miniprogram_id | 2022-05-30 17:17:41 | xuxiaowei_client_qq_miniprogram_secret | client_secret_post,client_secret_basic | refresh_token,qq_miniprogram | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 | ||
支付宝小程序使用 | 13 | xuxiaowei_client_alipay_miniprogram_id | 2022-05-30 17:17:41 | xuxiaowei_client_alipay_miniprogram_secret | client_secret_post,client_secret_basic | refresh_token,alipay_miniprogram | snsapi_base,snsapi_info | false | 300 | 43200 | 2592000 | ||
支付宝网站应用使用 | 14 | xuxiaowei_client_alipay_oplatform_website_id | 2022-05-30 17:17:41 | xuxiaowei_client_alipay_oplatform_website_secret | client_secret_post,client_secret_basic | refresh_token,alipay_oplatform_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
- 微信公众号(个人开发适配 OAuth 2.1、微信公众号的授权方式) wechat_offiaccount
- 微信扫码(个人开发适配 OAuth 2.1、微信扫码的授权方式) wechat_oplatform_website
- 码云(个人开发适配 OAuth 2.1、码云的授权方式) gitee
- QQ扫码(个人开发适配 OAuth 2.1、QQ扫码的授权方式) qq_website
- 微博扫码(个人开发适配 OAuth 2.1、微博扫码的授权方式) weibo_website
- gitlab授权(个人开发适配 OAuth 2.1、gitlab的授权方式) gitlab
- 企业微信扫码(个人开发适配 OAuth 2.1、企业微信扫码的授权方式) wechat_work_website
- github授权(个人开发适配 OAuth 2.1、gitlab的授权方式) github
- 钉钉dingtalk扫码(个人开发适配 OAuth 2.1、钉钉dingtalk扫码的授权方式) dingtalk
- 支付宝小程序(个人开发适配 OAuth 2.1、支付宝小程序的授权方式) alipay_miniprogram
- 支付宝网站应用(个人开发适配 OAuth 2.1、支付宝网站应用的授权方式) alipay_oplatform_website
-
使用了哪六个仓库?
-
上述六个仓库以哪个为准?其余仓库何时同步?
- 以 JiHuLab 为准
- 其余仓库每日同步
-
各个仓库的作用?
仓库地址 | 作用 | 说明 |
---|---|---|
极狐 JiHuLab | 供国内用户访问、提问、下载资源、GitLab Runner CI/CD 流水线打包/制作Docker镜像、Kubernetes(k8s) 发布项目使用 | 开源项目 免费使用 GitLab Runner |
码云 Gitee | 国内备份仓库 | 由于技术栈(项目使用 GitLab Runner CI/CD 流水线测试与发布)及不可抗力的因素,将来会关闭 Gitee 的 issues,并将历史数据迁移到 极狐 JiHuLab |
GitLab | 国外备份仓库,国外流水线测试 | 免费额度 400 分钟,每月后期可能由于免费额度用完而失败 |
GitCode | 国内备份仓库,国内流水线测试 | 流水线配额 2000 分钟,申请内侧资格 |
GitHub | 国外备份仓库 | 使用 CodeQL 每日扫描项目中的 main 分支是否存在漏洞 |
GitLink | 国内备份仓库 |
- 各分支的作用?
main
- 主分支
- 不可推送,只能合并
- 用于 GitLab Runner 的 kubernetes(k8s) 类型的执行器执行 CI/CD
- 使用 kubernetes(k8s) 编译代码打包
- 使用 kubernetes(k8s) 将打包后的jar包制作成docker镜像
- 使用 kubernetes(k8s) 进行发布
xuxiaowei
开头的分支- 个人分支,按功能
PR
到主分支main
- 个人分支,按功能
shell
- 用于 GitLab Runner 的 shell 类型的执行器执行 CI/CD
- 使用 shell 命令编译代码打包
- 使用 shell 命令创建 Linux service 服务进行发布
docker
- 用于 GitLab Runner 的 docker 类型的执行器执行 CI/CD
- 使用 docker 编译代码打包
- 使用 docker 将打包后的jar包制作成docker镜像
- 使用 docker 进行发布
pages
- 文档分支
consul
- 历史版本分支,使用 consul 作为注册与配置中心,后续不再维护(主分支使用 nacos 作为注册与配置中心)
- 此处未说明的分支,请勿使用
- 已上包含 CI/CD 的分支
- 分支内的各阶段,可交替使用,如:使用 docker 编译代码打包、使用 docker 将打包后的jar包制作成docker镜像,使用 kubernetes(k8s) 进行发布。如何选择请使用者自行组合。
- 这些分支代码相同,CI/CD 根据分支名进行触发,即:想使用某个分支的某些执行器执行 CI/CD,就将代码
PR
(推荐使用PR,方便一键回滚代码、将回滚的内容进行恢复) 到指定的分支。
点击展开
git remote add gitee https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud-next.git
git remote add gitlab https://gitlab.com/xuxiaowei-cloud/xuxiaowei-cloud-next.git
git remote add jihulab https://jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud-next.git
git remote add github https://github.com/xuxiaowei-cloud/xuxiaowei-cloud-next.git
git remote add gitcode https://gitcode.net/xuxiaowei-cloud/xuxiaowei-cloud-next.git
git remote add gitlink https://gitlink.org.cn/xuxiaowei-cloud/xuxiaowei-cloud-next.git