Skip to content

🌱 项目概述 WanwuCode 是一款基于 Spring Boot + Spring Cloud 的现代化全栈微服务解决方案,以「万物皆可数字化」为理念,构建企业级智能化后端服务生态。项目采用模块化设计,通过四大核心模块实现业务能力的统一输出与智能升级,助力开发者快速搭建高可用、可扩展的数字化系统。

Notifications You must be signed in to change notification settings

DevYangJC/wanwuCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WanwuCode - 万物代码

一个基于 Spring Boot 和 Spring Cloud 的综合性多服务后端系统

提供 API 开放平台、BI(商业智能)分析、用户中心和网关服务的微服务架构解决方案

📋 目录

项目简介

WanwuCode (万物代码) 是一个现代化的微服务架构项目,采用 Spring Boot 和 Spring Cloud 构建。项目提供完整的后端服务解决方案,包括:

  • API 开放平台:提供接口调用、管理和分析功能
  • BI 智能分析:具有 AI 驱动的图表分析和商业智能功能
  • 用户中心:统一的用户认证和管理服务
  • 网关服务:统一的流量入口和路由管理

项目架构

微服务结构

wanwu-code-backend/
├── wanwu-code-gateway/          # 网关服务 (端口: 4399)
├── wanwu-code-api/              # API 开放平台 (端口: 8805)
├── wanwu-code-bi/               # BI 商业智能服务 (端口: 8807)
├── wanwu-code-usercenter/       # 用户中心服务
├── wanwu-code-common/           # 公共工具类和通用代码
├── wanwu-code-api-common/       # API 特定的共享模型和接口
└── sql/                         # 数据库初始化脚本

服务通信

  • 服务注册发现:Nacos
  • RPC 通信:Dubbo 3.0.9
  • HTTP 通信:OpenFeign
  • 消息队列:RabbitMQ
  • 配置管理:Nacos Config

功能特性

🚀 核心功能

  • API 管理:接口定义、发布、调用统计、权限控制
  • 智能分析:AI 驱动的数据图表生成和分析
  • 用户系统:统一认证、权限管理、用户信息管理
  • 网关路由:动态路由、负载均衡、跨域处理
  • 服务监控:服务健康检查、日志管理、性能监控

🛡️ 安全特性

  • 身份认证:Sa-Token 权限框架
  • 接口安全:API 密钥管理、调用频控
  • 数据安全:数据加密、SQL 注入防护
  • 服务安全:服务间调用认证、网关鉴权

📊 扩展功能

  • 缓存系统:Redis 多级缓存
  • 搜索引擎:Elasticsearch 集成
  • 文件存储:腾讯云 COS 对象存储
  • 消息通知:微信集成、邮件服务

技术栈

后端框架

技术 版本 说明
Spring Boot 2.7.2 核心框架
Spring Cloud 2021.0.5 微服务框架
Spring Cloud Alibaba 2021.0.5.0 阿里云集成
MyBatis Plus 3.5.2 ORM 框架
Sa-Token 1.35.0.RC 权限认证
Dubbo 3.0.9 RPC 框架

中间件

中间件 说明
Nacos 服务注册发现、配置管理
Redis 缓存、会话存储
Elasticsearch 搜索引擎
RabbitMQ 消息队列
MySQL 关系型数据库

工具库

工具 说明
Hutool Java 工具类库
Lombok 代码简化
Gson JSON 处理
Knife4j API 文档

快速开始

环境要求

  • JDK: 1.8+
  • Maven: 3.6+
  • MySQL: 5.7+
  • Redis: 3.0+
  • Nacos: 2.0+
  • Node.js: 12+ (前端开发)

安装步骤

  1. 克隆项目

    git clone https://github.com/your-username/wanwu-code.git
    cd wanwu-code
  2. 构建项目

    mvn clean install
  3. 启动基础服务

    # 启动 Nacos (默认端口 8848)
    # 启动 Redis (默认端口 6379)
    # 启动 MySQL (默认端口 3306)
  4. 初始化数据库

    # 详见数据库初始化章节

环境要求

开发环境

  • 操作系统: Windows / macOS / Linux
  • IDE: IntelliJ IDEA / Eclipse
  • JDK: Oracle JDK 1.8 或 OpenJDK 1.8+
  • 构建工具: Maven 3.6+

生产环境

  • 操作系统: Linux (推荐 CentOS 7+)
  • 内存: 最低 2GB,推荐 4GB+
  • CPU: 最低 2 核,推荐 4 核+
  • 存储: 最低 10GB 可用空间

服务配置

环境配置

项目支持多环境配置:

  • 开发环境: application.yml (默认)
  • 测试环境: application-test.yml
  • 生产环境: application-prod.yml

配置优先级

  1. 命令行参数
  2. Java 系统属性
  3. 操作系统环境变量
  4. 外部配置文件 (application-{profile}.yml)
  5. Nacos 配置中心
  6. 内部配置文件 (application.yml)

Nacos 配置

在 Nacos 控制台添加以下配置:

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/wanwu_code?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=your_password

# Redis 配置
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=your_redis_password

# Elasticsearch 配置
elasticsearch.host=localhost
elasticsearch.port=9200

数据库初始化

创建数据库

-- 创建主数据库
CREATE DATABASE wanwu_code DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建 API 数据库
CREATE DATABASE wanwu_code_api DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建 BI 数据库
CREATE DATABASE wanwu_code_bi DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建消息数据库
CREATE DATABASE wanwu_code_message DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

执行初始化脚本

# 基础表结构
mysql -u root -p wanwu_code < sql/create_table.sql

# API 服务表
mysql -u root -p wanwu_code_api < sql/create_table_api.sql

# BI 服务表
mysql -u root -p wanwu_code_bi < sql/create_table_bi.sql

# 消息服务表
mysql -u root -p wanwu_code_message < sql/create_table_message.sql

数据库表说明

用户中心表

  • user: 用户基本信息
  • user_role: 用户角色关系
  • role: 角色信息
  • permission: 权限信息

API 平台表

  • api_info: 接口信息
  • api_user: API 用户信息
  • user_api_relation: 用户接口关系
  • api_call_log: 接口调用日志

BI 分析表

  • chart_info: 图表信息
  • chart_data: 图表数据
  • analysis_task: 分析任务
  • analysis_result: 分析结果

服务启动

单服务启动

# 启动网关服务
mvn spring-boot:run -pl wanwu-code-gateway

# 启动 API 服务
mvn spring-boot:run -pl wanwu-code-api

# 启动 BI 服务
mvn spring-boot:run -pl wanwu-code-bi

# 启动用户中心
mvn spring-boot:run -pl wanwu-code-usercenter

批量启动脚本

#!/bin/bash
# start-all.sh

echo "启动 WanwuCode 微服务..."

# 启动基础服务
mvn spring-boot:run -pl wanwu-code-usercenter &
USERCENTER_PID=$!

mvn spring-boot:run -pl wanwu-code-gateway &
GATEWAY_PID=$!

# 启动业务服务
mvn spring-boot:run -pl wanwu-code-api &
API_PID=$!

mvn spring-boot:run -pl wanwu-code-bi &
BI_PID=$!

echo "所有服务启动完成"
echo "网关服务: http://localhost:4399"
echo "API 服务: http://localhost:8805"
echo "BI 服务: http://localhost:8807"

# 等待用户输入来停止服务
read -p "按回车键停止所有服务..."

# 停止所有服务
kill $USERCENTER_PID $GATEWAY_PID $API_PID $BI_PID
echo "所有服务已停止"

服务启动顺序

  1. Nacos: 服务注册中心
  2. MySQL/Redis: 基础设施
  3. 用户中心: 提供认证服务
  4. 网关服务: 流量入口
  5. 业务服务: API 服务、BI 服务

Docker 部署

# Dockerfile 示例
FROM openjdk:8-jre-slim

COPY target/wanwu-code-*.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/app.jar"]
# 构建镜像
docker build -t wanwu-code:latest .

# 运行容器
docker run -d -p 8080:8080 wanwu-code:latest

API 文档

在线文档

启动服务后,可以通过以下地址访问 API 文档:

主要 API 接口

用户认证

# 用户登录
POST /api/user/login
Content-Type: application/json

{
  "userAccount": "admin",
  "userPassword": "password"
}

# 获取用户信息
GET /api/user/current
Authorization: Bearer {token}

API 管理

# 获取接口列表
GET /api/apiInfo/list
Authorization: Bearer {token}

# 创建接口
POST /api/apiInfo/add
Authorization: Bearer {token}
Content-Type: application/json

{
  "name": "测试接口",
  "description": "接口描述",
  "url": "http://example.com/api",
  "method": "GET"
}

BI 分析

# 生成图表
POST /api/chart/gen
Authorization: Bearer {token}
Content-Type: application/json

{
  "goal": "分析用户增长趋势",
  "chartType": "折线图",
  "data": "..."
}

开发指南

代码规范

命名规范

  • 类名: 使用 UpperCamelCase
  • 方法名: 使用 lowerCamelCase
  • 常量: 使用 UPPER_SNAKE_CASE
  • 包名: 使用小写字母

注释规范

/**
 * API 信息实体类
 *
 * @author 作者名
 * @since 2023-12-01
 */
public class ApiInfo {
    /**
     * 接口 ID
     */
    private Long id;
}

分层架构

src/main/java/com/cong/
├── controller/          # 控制器层
├── service/            # 业务逻辑层
│   ├── impl/          # 业务实现
├── mapper/            # 数据访问层
├── model/             # 数据模型层
│   ├── entity/        # 实体类
│   ├── dto/           # 数据传输对象
│   └── vo/            # 视图对象
├── config/            # 配置类
├── utils/             # 工具类
└── exception/         # 异常处理

异常处理

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(BusinessException.class)
    public BaseResponse<?> businessExceptionHandler(BusinessException e) {
        log.error("BusinessException", e);
        return ResultUtils.error(e.getCode(), e.getMessage());
    }

    @ExceptionHandler(RuntimeException.class)
    public BaseResponse<?> runtimeExceptionHandler(RuntimeException e) {
        log.error("RuntimeException", e);
        return ResultUtils.error(ErrorCode.SYSTEM_ERROR);
    }
}

日志规范

@Slf4j
@Service
public class ApiInfoService {

    public void createApi(ApiInfo apiInfo) {
        log.info("创建接口: {}", apiInfo.getName());
        try {
            // 业务逻辑
            log.info("接口创建成功: id={}", apiInfo.getId());
        } catch (Exception e) {
            log.error("接口创建失败: {}", apiInfo.getName(), e);
            throw new BusinessException(ErrorCode.OPERATION_ERROR);
        }
    }
}

项目结构

详细目录结构

wanwu-code/
├── wanwu-code-backend/           # 后端项目
│   ├── wanwu-code-gateway/       # 网关服务
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/com/cong/gateway/
│   │   │   │   │   ├── config/    # 路由配置
│   │   │   │   │   ├── filter/    # 网关过滤器
│   │   │   │   │   └── GatewayApplication.java
│   │   │   │   └── resources/
│   │   │   │       └── application.yml
│   │   │   └── test/
│   │   └── pom.xml
│   │
│   ├── wanwu-code-api/           # API 服务
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/com/cong/api/
│   │   │   │   │   ├── controller/
│   │   │   │   │   ├── service/
│   │   │   │   │   ├── mapper/
│   │   │   │   │   ├── model/
│   │   │   │   │   └── ApiApplication.java
│   │   │   │   └── resources/
│   │   │   │       ├── mapper/    # MyBatis 映射文件
│   │   │   │       └── application.yml
│   │   │   └── test/
│   │   ├── doc/                   # API 文档
│   │   └── pom.xml
│   │
│   ├── wanwu-code-bi/            # BI 服务
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/com/cong/bi/
│   │   │   │   │   ├── controller/
│   │   │   │   │   ├── service/
│   │   │   │   │   ├── mapper/
│   │   │   │   │   ├── model/
│   │   │   │   │   └── BiApplication.java
│   │   │   │   └── resources/
│   │   │   │       └── application.yml
│   │   │   └── test/
│   │   └── pom.xml
│   │
│   ├── wanwu-code-usercenter/    # 用户中心
│   │   ├── src/
│   │   │   └── main/
│   │   │       ├── java/com/cong/usercenter/
│   │   │       │   ├── controller/
│   │   │       │   ├── service/
│   │   │       │   ├── mapper/
│   │   │       │   ├── model/
│   │   │       │   └── UserCenterApplication.java
│   │   │       └── resources/
│   │   │           └── application.yml
│   │   └── pom.xml
│   │
│   ├── wanwu-code-common/        # 公共模块
│   │   ├── src/
│   │   │   └── main/
│   │   │       └── java/com/cong/common/
│   │   │           ├── config/     # 公共配置
│   │   │           ├── utils/      # 工具类
│   │   │           ├── exception/  # 异常类
│   │   │           └── constant/   # 常量类
│   │   └── pom.xml
│   │
│   ├── wanwu-code-api-common/    # API 公共模块
│   │   ├── src/
│   │   │   └── main/
│   │   │       └── java/com/cong/apicommon/
│   │   │           ├── model/      # API 相关模型
│   │   │           └── constant/   # API 常量
│   │   └── pom.xml
│   │
│   └── sql/                       # 数据库脚本
│       ├── create_table.sql       # 基础表结构
│       ├── create_table_api.sql   # API 服务表
│       ├── create_table_bi.sql    # BI 服务表
│       └── create_table_message.sql # 消息服务表
│
├── wanwu-code-frontend/          # 前端项目
│   ├── src/
│   │   ├── components/           # 公共组件
│   │   ├── views/                # 页面组件
│   │   ├── store/                # 状态管理
│   │   ├── router/               # 路由配置
│   │   ├── api/                  # API 接口
│   │   └── utils/                # 工具函数
│   ├── public/                   # 静态资源
│   ├── package.json
│   └── README.md
│
├── docs/                         # 项目文档
│   ├── api/                      # API 文档
│   ├── deployment/               # 部署文档
│   └── development/              # 开发文档
│
├── scripts/                      # 脚本文件
│   ├── start-all.sh             # 启动脚本
│   ├── stop-all.sh              # 停止脚本
│   └── deploy.sh                # 部署脚本
│
├── docker/                       # Docker 配置
│   ├── Dockerfile
│   └── docker-compose.yml
│
├── README.md                     # 项目说明
├── CLAUDE.md                     # Claude Code 指导文档
└── .gitignore                    # Git 忽略文件

常见问题

Q1: 服务启动失败,提示 Nacos 连接失败

解决方案:

  1. 检查 Nacos 服务是否正常启动
  2. 确认 Nacos 地址配置是否正确
  3. 检查网络连接是否正常
# application.yml
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848

Q2: 数据库连接失败

解决方案:

  1. 确认 MySQL 服务是否启动
  2. 检查数据库用户名和密码是否正确
  3. 确认数据库是否已创建
# 测试数据库连接
mysql -u root -p -e "SHOW DATABASES;"

Q3: Redis 连接失败

解决方案:

  1. 检查 Redis 服务是否启动
  2. 确认 Redis 配置是否正确
  3. 检查防火墙设置
# 测试 Redis 连接
redis-cli ping

Q4: 服务间调用失败

解决方案:

  1. 确认服务是否在 Nacos 中注册成功
  2. 检查服务名称是否正确
  3. 查看网络连接和端口配置

Q5: API 调用频控问题

解决方案:

  1. 检查调用频控配置
  2. 调整频控参数
  3. 使用缓存减少调用次数

贡献指南

开发流程

  1. Fork 项目到个人仓库
  2. 创建功能分支: git checkout -b feature/new-feature
  3. 提交代码: git commit -m "Add new feature"
  4. 推送分支: git push origin feature/new-feature
  5. 创建 Pull Request

代码提交规范

type(scope): description

[optional body]

[optional footer]

类型说明:

  • feat: 新功能
  • fix: 修复 bug
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建工具或辅助工具的变动

示例:

feat(api): add user authentication feature

- Add user login endpoint
- Implement JWT token validation
- Add password encryption

Closes #123

代码审查

  1. 代码风格: 遵循项目代码规范
  2. 测试覆盖: 确保新增功能有相应测试
  3. 文档更新: 更新相关文档
  4. 性能考虑: 注意性能影响

版本历史

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 基础微服务架构搭建
  • API 开放平台核心功能
  • BI 智能分析基础功能

v1.1.0 (计划中)

  • 增强用户权限管理
  • 优化 API 调用性能
  • 新增数据可视化组件

v2.0.0 (规划中)

  • 容器化部署支持
  • 服务网格集成
  • 分布式链路追踪

许可证

本项目采用 MIT License 许可证。

联系方式

致谢

感谢所有为这个项目做出贡献的开发者和社区成员。


Happy Coding! 🚀

如果这个项目对您有帮助,请给我们一个 ⭐️ Star!

About

🌱 项目概述 WanwuCode 是一款基于 Spring Boot + Spring Cloud 的现代化全栈微服务解决方案,以「万物皆可数字化」为理念,构建企业级智能化后端服务生态。项目采用模块化设计,通过四大核心模块实现业务能力的统一输出与智能升级,助力开发者快速搭建高可用、可扩展的数字化系统。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published