Skip to content

wzkris/wzkris

Repository files navigation

wzkris-cloud

version JDK Spring Boot

📖 平台简介

wzkris-cloud 是一个基于 Spring Boot 3 + JDK 17 的企业级多租户微服务快速开发平台, 内嵌了丰富的通用功能模块,旨在为企业应用开发提供高效、安全、可扩展的基础架构。

系统核心功能

  • 多端用户系统:支持管理员、租户管理员和移动端用户的多端管理
  • OAuth2.1认证系统:基于Spring-Authorization-Server实现完整的OAuth2.1协议认证授权
  • 多维度权限控制:基于角色(RBAC)的精细化权限管理体系,支持菜单、按钮、数据权限
  • 完整多租户架构:租户之间数据完全隔离,支持租户切换和租户管理
  • 全面日志监控:操作日志、登录日志、审计日志的完整记录和查询
  • 高效Excel处理:基于EasyExcel实现的高性能Excel导入导出功能
  • 专业接口文档:集成Knife4j实现OpenAPI 3.0规范的自动API文档生成
  • 安全数据保护:敏感信息自动脱敏处理、XSS防护、SQL注入防护
  • 分布式任务调度:集成xxl-job实现可靠的定时任务管理
  • 多种登录方式:支持账号密码、短信验证码、微信等多种登录方式
  • 动态代码执行:支持动态编译和执行Java代码
  • 微服务治理:基于Spring Cloud和Spring Cloud Alibaba的完整微服务解决方案

🏗️ 项目结构

wzkris     
├── codestyle              // 代码风格配置文件
├── sql                    // 数据库脚本(MySQL/PostgreSQL)
├── wzkris-auth            // OAuth2认证授权服务
│   ├── wzkris-auth-biz    // 认证业务实现
│   └── wzkris-auth-api    // 认证远程接口
├── wzkris-bom             // 依赖版本管理
├── wzkris-common          // 公共模块集合
│   ├── wzkris-common-captcha       // 验证码模块
│   ├── wzkris-common-core          // 核心工具包
│   ├── wzkris-common-excel         // Excel处理
│   ├── wzkris-common-httpclient    // HTTP远程调用封装
│   ├── wzkris-common-loadbalancer  // 负载均衡
│   ├── wzkris-common-log           // 日志记录
│   ├── wzkris-common-notifier      // 通知SDK集成(钉钉/企业微信等)
│   ├── wzkris-common-orm           // 持久层框架封装(MyBatis-Plus)
│   ├── wzkris-common-redis         // Redis缓存封装
│   ├── wzkris-common-security      // 安全模块(权限校验、数据脱敏等)
│   ├── wzkris-common-sentinel      // 限流熔断(Sentinel集成)
│   ├── wzkris-common-swagger       // API文档封装(Knife4j集成)
│   ├── wzkris-common-validator     // 数据校验扩展
│   ├── wzkris-common-web           // Web基础组件封装
│   └── wzkris-common-weixin-sdk    // 微信开放平台SDK封装
├── wzkris-demo            // 示例模块
│   ├── oauth2-client-demo     // OAuth2客户端示例
│   ├── wzkris-mq-demo         // RocketMQ Stream 示例
│   └── wzkris-pg-bus-demo     // PostgreSQL LISTEN/NOTIFY + MyBatis-Plus 轻量级消息总线示例
├── wzkris-extends         // 扩展模块
│   └── wzkris-monitor-admin  // 监控中心(Spring Boot Admin集成)
├── wzkris-gateway         // API网关(Spring Cloud Gateway)
├── wzkris-modules         // 业务功能模块
│   ├── wzkris-system          // 系统服务
│   │   ├── wzkris-system-api  // 系统服务远程接口
│   │   └── wzkris-system-biz  // 系统服务业务实现
│   └── wzkris-user-center     // 用户中心服务
│       ├── wzkris-user-center-api  // 用户中心服务远程接口
│       └── wzkris-user-center-biz  // 用户中心服务业务实现
└── pom.xml                // 项目依赖管理

🌟 项目特点

  • 模块化架构:高度模块化的设计,便于扩展和维护
  • 微服务支持:完整的微服务架构解决方案
  • 多租户隔离:数据、功能、配置全方位的租户隔离
  • 安全可靠:完善的认证授权、数据脱敏、防XSS/SQL注入
  • 开发友好:丰富的工具类和通用组件,提高开发效率
  • 性能优化:缓存策略、异步处理、连接池优化
  • 运维便捷:完善的监控、日志、配置管理

🚀 快速开始

环境要求

环境/工具 版本要求 说明 默认端口
JDK 17+ Java开发环境 -
Maven 3.6+ 项目构建工具 -
PostgreSQL 12+ 项目主数据库 5432
MySQL 8.0+ Nacos配置中心数据库 3306
Redis 6.0+ 缓存和会话管理 6379
Nacos 2.2.0+ 服务注册发现与配置管理 8848

部署步骤

  1. 准备数据库

    PostgreSQL数据库(主数据库)

    • 创建PostgreSQL数据库(推荐版本 12+)
    • 执行 sql/postgresql/wzkris_user_center.sql 初始化用户中心数据库
    • 执行 sql/postgresql/wzkris_system.sql 初始化系统服务数据库

    MySQL数据库(Nacos配置中心)

    • 创建MySQL数据库(推荐版本 8.0+)
    • 执行 sql/mysql/nacos_config.sql 初始化Nacos配置中心数据库
  2. 配置Nacos

    • 启动Nacos服务(默认端口 8848)
    • 配置Nacos使用MySQL数据源(指向步骤1创建的nacos_config数据库)
    • 在Nacos控制台导入相关服务配置信息
  3. 配置Redis

    • 启动Redis服务(默认端口 6379)
    • 确保Redis服务可访问,用于缓存和会话管理
  4. 构建项目

    # 编译打包(跳过测试)
    mvn clean package -DskipTests
  5. 启动服务

    • 按顺序启动各个服务:
      1. Nacos(服务注册与配置中心)
      2. Gateway (8080) - API网关服务
      3. Auth (9000) - 认证授权服务
      4. User-Center (8000) - 用户中心服务
      5. System (5555) - 系统服务
      6. Monitor (9100) - 监控中心(可选)

服务端口说明

服务名称 端口 说明
Gateway 8080 API网关服务
Auth 9000 认证授权服务
User-Center 8000 用户中心服务
System 5555 系统服务
Monitor 9100 监控中心

📨 PostgreSQL 消息总线 Demo

wzkris-demo/wzkris-pg-bus-demo 演示了如何通过 MyBatis-Plus + PostgreSQL NOTIFY/LISTEN 组合出轻量级消息总线,覆盖如下能力:

  • MyBatis-Plus 管理消息表 demo_bus_system(字段包含 channel、title、payload、status)
  • 通过 pg_notify 推送变更事件,监听线程常驻 LISTEN <channel>
  • REST API 用于发消息、补发、手动 ACK,便于联调

快速体验

  1. 初始化表结构
    \i sql/postgresql/wzkris_pg_bus_demo.sql
  2. 根据需要在 wzkris-demo/wzkris-pg-bus-demo/src/main/resources/application.yml 配置数据库
  3. 启动 Demo
    mvn -pl wzkris-demo/wzkris-pg-bus-demo spring-boot:run
  4. 调用接口
    # 发布一条消息
    curl -X POST http://localhost:3341/systems \
      -H "Content-Type: application/json" \
      -d '{"title":"demo","payload":"hello pg bus"}'
    # 重放
    curl -X POST http://localhost:3341/systems/{id}/resend
    # 查询
    curl http://localhost:3341/systems

访问方式

🎯 技术架构

分类 技术 版本 说明
基础框架 Spring Boot 3.4.4 核心框架
微服务框架 Spring Cloud 2024.0.1 微服务框架
微服务生态 Spring Cloud Alibaba 2023.0.3.2 微服务生态组件
开发环境 JDK 17 Java开发环境
Web容器 Tomcat - 内嵌Web容器
API网关 Spring Cloud Gateway - 统一网关入口
服务注册 Nacos 2.2.0+ 服务注册发现与配置管理
权限认证 Spring-Authorization-Server - OAuth2.1认证框架
API文档 Knife4j 4.5.0 OpenAPI 3.0文档工具
对象映射 MapStruct Plus 1.4.6 对象转换增强框架
工具库 Lombok 1.18.28 代码简化工具
网络框架 Netty 4.1.110.Final 高性能网络应用框架
主数据库 PostgreSQL 12+ 项目主关系型数据库
配置数据库 MySQL 8.0+ 仅用于Nacos配置中心
缓存中间件 Redis/Redisson - 分布式缓存
任务调度 XxlJob 3.2.0 分布式任务调度平台
Excel处理 EasyExcel 4.0.2 高性能Excel处理
分布式事务 Seata - 分布式事务框架(Spring Cloud Alibaba集成)
限流熔断 Sentinel - 流量控制与熔断降级(Spring Cloud Alibaba集成)
监控管理 Spring Boot Admin - 应用监控管理
远程调用 HttpService - 服务间HTTP调用
代码质量 Checkstyle 3.6.0 代码风格检查
代码格式化 Spotless 2.44.4 代码自动格式化

演示图

输入图片说明 输入图片说明
输入图片说明 输入图片说明
输入图片说明 输入图片说明
输入图片说明 输入图片说明

前端项目地址

https://gitee.com/wzkris/wzkris-ui-vben

📄 许可证

本项目采用 zlib License 许可证。

🤝 贡献指南

欢迎提交Issue和Pull Request!

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 开启Pull Request

📞 联系方式

如有问题或建议,请通过以下方式联系我们:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages