# Mini-Bank **Repository Path**: devilCloud/mini-bank ## Basic Information - **Project Name**: Mini-Bank - **Description**: 使用 ai 生成的 银行练习项目 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-10-30 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mini-Bank 微服务架构项目 ## 项目简介 Mini-Bank是一个基于Spring Cloud Alibaba的微服务银行系统,提供账户管理、交易处理、利息计算等核心银行功能。该项目采用微服务架构设计,包含多个独立的服务模块,通过API网关统一访问。 ## 技术栈 - **框架**:Spring Boot 2.7.x, Spring Cloud 2021.x, Spring Cloud Alibaba 2021.x - **服务注册与配置**:Nacos 2.2.x - **API网关**:Spring Cloud Gateway - **服务调用**:OpenFeign - **ORM框架**:MyBatis-Plus - **数据库**:MySQL 8.0 - **缓存**:Redis 6.2 - **容器化**:Docker, Docker Compose ## 项目结构 ``` mini-bank/ ├── mini-bank-common/ # 公共模块(实体类、工具类、Feign接口等) ├── mini-bank-account/ # 账户服务模块 ├── mini-bank-transaction/ # 交易服务模块 ├── mini-bank-interest/ # 利息服务模块 ├── mini-bank-task/ # 定时任务服务模块 ├── mini-bank-gateway/ # API网关模块 ├── database.sql # 数据库初始化脚本 ├── docker-compose.yml # Docker Compose配置 ├── startup.sh # 启动脚本 ├── shutdown.sh # 停止脚本 └── README.md # 项目文档 ``` ## 核心功能 ### 1. 账户管理 - 创建账户 - 查询账户信息 - 更新账户信息 - 冻结/解冻账户 - 注销账户 ### 2. 交易处理 - 存款 - 取款 - 转账 - 交易记录查询 ### 3. 利息计算 - 活期利息自动计算和发放 - 利息记录管理 ### 4. 定时任务 - 每月自动计算并发放利息 - 数据清理和统计 ### 5. API网关 - 路由转发 - 限流控制 - 跨域处理 - 服务发现 ## 环境要求 - JDK 1.8+ - Maven 3.6+ - Docker and Docker Compose - MySQL 8.0 - Redis 6.2 - Nacos 2.2.x ## 快速开始 ### 1. 克隆项目 ```bash git clone [repository-url] cd mini-bank ``` ### 2. 启动基础设施服务 ```bash # 赋予脚本执行权限 chmod +x startup.sh shutdown.sh # 启动整个系统(包括基础设施和所有微服务) ./startup.sh ``` 或者手动启动基础设施服务: ```bash docker-compose up -d ``` ### 3. 访问服务 - **Nacos控制台**: http://localhost:8848/nacos (默认用户名/密码: nacos/nacos) - **API网关**: http://localhost:8000 - **API文档**: 可通过各服务的Swagger接口访问 ## 服务接口说明 ### 账户服务接口 - **创建账户**: POST /api/account/create - **查询账户**: GET /api/account/{accountNumber} - **更新账户**: PUT /api/account/update - **冻结账户**: PUT /api/account/{accountNumber}/freeze - **解冻账户**: PUT /api/account/{accountNumber}/unfreeze - **注销账户**: DELETE /api/account/{accountNumber} ### 交易服务接口 - **存款**: POST /api/transaction/deposit - **取款**: POST /api/transaction/withdraw - **转账**: POST /api/transaction/transfer - **查询交易**: GET /api/transaction/detail/{transactionId} - **查询账户交易记录**: GET /api/transaction/account/{accountNumber} ### 利息服务接口 - **查询利息记录**: GET /api/interest/account/{accountNumber} - **查询单条利息记录**: GET /api/interest/{recordId} ## 数据库说明 项目使用MySQL数据库,数据库名为`mini_bank`,包含以下主要表: 1. **account**: 存储账户信息 2. **transaction**: 存储交易记录 3. **interest_record**: 存储利息记录 数据库初始化脚本位于`database.sql`文件中。 ## 配置说明 ### 环境变量 - **MySQL**: 用户名root,密码123456,数据库名mini_bank - **Redis**: 默认配置,无需密码 - **Nacos**: 独立模式运行,默认端口8848 ### 微服务配置 所有微服务的配置文件位于各自模块的`src/main/resources`目录下: - `bootstrap.yml`: 配置Nacos服务发现和配置中心 - `application.yml`: 服务特定的配置 ## 停止系统 ```bash ./shutdown.sh ``` ## 开发说明 ### 代码风格 - 使用Java编码规范 - 类名使用大驼峰命名法 - 方法和变量名使用小驼峰命名法 - 常量使用全大写,下划线分隔 ### 提交规范 - 提交信息清晰描述修改内容 - 功能开发完成后及时编写单元测试 - 遵循Git Flow工作流 ## 监控与日志 - **服务监控**: 可通过Spring Boot Admin监控各服务状态 - **日志管理**: 服务日志位于`logs`目录下 - **性能监控**: 可接入Prometheus和Grafana进行性能监控 ## 注意事项 1. 确保Docker和Docker Compose已正确安装 2. 首次启动时需要等待数据库初始化完成 3. 生产环境部署前需要修改默认密码和配置 4. 服务启动顺序:先启动基础设施服务,再启动微服务 ## 许可证 [MIT License](LICENSE)