# ConfigServer **Repository Path**: mingmingmingge/config-server ## Basic Information - **Project Name**: ConfigServer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ConfigServer - 配置服务器(总服务器) ConfigServer 是游戏系统的核心配置管理服务器,负责管理游戏配置文件、子服务器注册与监控、用户认证等核心功能。FishGameServer 启动后会向 ConfigServer 进行注册并定期发送心跳。 ## 项目定位 ConfigServer 作为**总服务器**,承担以下核心职责: - 游戏配置文件的集中管理(多平台、多版本) - 子服务器(如 FishGameServer)的注册与状态监控 - 配置文件的代码生成(C#、Java) - 系统用户认证与权限管理 - API 文档自动生成 ## 目录结构 ``` ConfigServer/ ├── src/ │ ├── main/ │ │ ├── java/org/zy/server/ │ │ │ ├── WebApplicationStarter.java # 启动入口 │ │ │ ├── admin/ # 控制器层(Admin接口) │ │ │ │ ├── AdminCtrl.java # 管理员接口 │ │ │ │ ├── ApiCodeCtrl.java # API代码生成接口 │ │ │ │ ├── ApiCtrl.java # API管理接口 │ │ │ │ ├── AuthCtrl.java # 认证接口(登录/登出) │ │ │ │ ├── ModelFileCtrl.java # 配置文件接口 │ │ │ │ ├── PlatformCtrl.java # 平台接口 │ │ │ │ ├── SubServerCtrl.java # 子服务器注册/心跳接口 │ │ │ │ └── SysConfigCtrl.java # 系统配置接口 │ │ │ ├── controller/ # 控制器层(普通接口) │ │ │ │ ├── ApiController.java # 通用API接口 │ │ │ │ ├── FileUploadController.java # 文件上传接口 │ │ │ │ └── TestGController.java # 测试接口 │ │ │ ├── core/ # 核心组件 │ │ │ │ ├── AuthFilter.java # 认证过滤器(Token校验) │ │ │ │ ├── ConfigUtils.java # 配置工具类 │ │ │ │ ├── IdTool.java # ID生成工具(雪花算法) │ │ │ │ ├── ServerDao.java # 数据库访问封装(Nutz Dao) │ │ │ │ ├── TokenUtils.java # Token生成/校验工具 │ │ │ │ ├── UrlTool.java # URL/静态资源路径工具 │ │ │ │ └── WebConfig.java # Web配置 │ │ │ ├── domain/ # 实体类(数据库表映射) │ │ │ │ ├── ModelFile.java # 配置文件实体 │ │ │ │ ├── SubServer.java # 子服务器信息实体 │ │ │ │ ├── SysConfig.java # 系统配置实体 │ │ │ │ ├── SysConfigKey.java # 系统配置枚举 │ │ │ │ ├── SysUser.java # 系统用户实体 │ │ │ │ └── User.java # 用户实体 │ │ │ ├── repository/ # 数据访问层 │ │ │ │ ├── ModelFileRepository.java # 配置文件Repo │ │ │ │ ├── SubServerRepository.java # 子服务器Repo │ │ │ │ ├── SysConfigRepository.java # 系统配置Repo │ │ │ │ ├── SysUserRepository.java # 系统用户Repo │ │ │ │ └── UserRepository.java # 用户Repo │ │ │ ├── manager/ # 业务逻辑层(含缓存) │ │ │ │ ├── AdminManager.java # 管理员业务 │ │ │ │ ├── CrontabManager.java # 定时任务管理 │ │ │ │ ├── ModelFileManager.java # 配置文件业务 │ │ │ │ ├── UserManager.java # 用户业务 │ │ │ │ ├── UpdateAsyncManager.java # 异步更新管理 │ │ │ │ └── oss/OSSManager.java # OSS文件存储管理 │ │ │ ├── generator/ # API代码生成器 │ │ │ │ ├── ApiBoManager.java # API BO管理 │ │ │ │ ├── ApiCtrl.java # API控制器生成 │ │ │ │ ├── ApiJavaClassInfo.java # Java类信息 │ │ │ │ ├── ApiJavaField.java # Java字段信息 │ │ │ │ ├── ApiMethodInfo.java # API方法信息 │ │ │ │ ├── ApiParamInfo.java # API参数信息 │ │ │ │ ├── ApiReturnInfo.java # API返回信息 │ │ │ │ └── SolonCtrlParser.java # Solon控制器解析器 │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── LoginDto.java # 登录DTO │ │ │ │ └── ServerInfoDto.java # 服务器信息DTO │ │ │ ├── vo/ # 视图对象 │ │ │ │ ├── LoginVo.java # 登录响应VO │ │ │ │ ├── ModelFileVo.java # 配置文件VO │ │ │ │ ├── RankingVo.java # 排行榜VO │ │ │ │ ├── RegisterVo.java # 注册VO │ │ │ │ └── UpdateUserVo.java # 更新用户VO │ │ │ ├── enums/ # 枚举类 │ │ │ │ ├── AnnouncementType.java # 公告类型 │ │ │ │ ├── FishType.java # 鱼类型 │ │ │ │ ├── ItemType.java # 道具类型 │ │ │ │ ├── ItemFlowRecordPropTypeEnum.java # 道具流水类型 │ │ │ │ └── TaskType.java # 任务类型 │ │ │ ├── constant/ # 常量类 │ │ │ │ ├── GameItemConstant.java # 游戏道具常量 │ │ │ │ └── RankingConstant.java # 排行榜常量 │ │ │ ├── utils/ # 工具类 │ │ │ │ ├── GameMath.java # 游戏数学计算 │ │ │ │ ├── GameUtils.java # 游戏通用工具 │ │ │ │ ├── StringTools.java # 字符串工具 │ │ │ │ └── TemplateUtils.java # 模板工具 │ │ │ └── service/ # 服务层 │ │ │ ├── OcrService.java # OCR识别服务 │ │ │ └── RenderImpl.java # 渲染实现 │ │ └── resources/ │ │ ├── app.yml # 主配置文件 │ │ ├── app-custom.yml # 自定义配置(可覆盖主配置) │ │ ├── 架构提示词.txt # AI代码生成规范文档 │ │ ├── beetl.properties # Beetl模板配置 │ │ └── logback.xml # 日志配置 │ └── test/ # 测试代码 ├── web/ │ └── config_backend/ # 前端项目(Vue 3 + Naive UI) │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ ├── components/ # 公共组件 │ │ └── main.js # 入口文件 │ └── package.json ├── html/ # 静态资源目录 ├── logs/ # 日志目录 ├── target/ # 构建产物 ├── pom.xml # Maven配置 └── app.sh # 启动脚本 ``` ## 技术栈 | 类别 | 技术 | |------|------| | 框架 | Solon 3.9.0(轻量级 Java Web 框架) | | ORM | Nutz Dao | | 数据库 | MariaDB | | Java版本 | JDK 17 | | JSON | Fastjson / Snack4 | | 日志 | Log4j2 | | 缓存 | Ehcache | | OSS | 阿里云 OSS | | AI集成 | 智谱AI SDK、阿里DashScope SDK | | 其他 | Hutool、Netty、OpenCV、Tess4j(OCR) | ## 配置说明 ### 数据库配置(app.yml) ```yaml db: url: jdbc:mariadb://192.168.124.20:3306/game_config_db username: root password: 123456 server: port: 5001 # HTTP端口 static-locations: html # 静态资源目录 ``` ### 关键配置项 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `server.port` | HTTP服务端口 | 5001 | | `server.static-locations` | 静态资源目录 | html | | `oss.base-url` | OSS基础URL | - | | `ocr.tessdata-path` | OCR数据路径 | html/tess4j | ## 核心API接口 ### 子服务器管理(供FishGameServer调用) | 接口 | 方法 | 说明 | |------|------|------| | `/subServer/register` | POST | 子服务器注册 | | `/subServer/heartbeat` | POST | 子服务器心跳 | | `/subServer/list` | GET | 获取子服务器列表 | | `/subServer/delete` | POST | 删除子服务器 | ### 配置文件管理(公开API) | 接口 | 方法 | 说明 | 认证 | |------|------|------|------| | `/mfile/findAll` | GET | 获取所有配置文件 | 无需 | | `/mfile/findByPlatform` | GET | 按平台ID查询配置 | 无需 | | `/mfile/findByPlatformName` | GET | 按平台名称查询配置 | 无需 | | `/mfile/exportAll` | GET | 批量导出配置 | 需Token | | `/mfile/importBatch` | POST | 批量导入配置 | 需Token | ### 认证接口 | 接口 | 方法 | 说明 | |------|------|------| | `/auth/login` | POST | 用户登录,返回Token | | `/auth/logout` | POST | 用户登出 | ## 与FishGameServer的关系 1. **注册流程**:FishGameServer 启动时调用 `/subServer/register`,携带 authKey、服务器名称、端口等信息 2. **心跳机制**:FishGameServer 每2秒调用 `/subServer/heartbeat`,ConfigServer 超过10秒未收到心跳则标记离线 3. **配置获取**:FishGameServer 通过 `/mfile/findByPlatformName` 获取游戏配置 ## 启动方式 ```bash # Maven构建 mvn clean package # 启动(默认端口5001) java -jar target/ConfigServer.jar # 或使用自定义配置 java -jar target/ConfigServer.jar --app-custom.yml ``` ## 默认账号 - 用户名:`admin` - 密码:`admin` --- # FishGameServer - 游戏服务器(分服务器) FishGameServer 是游戏业务逻辑服务器,处理玩家登录、游戏数据、排行榜、签到、邮件、道具等核心游戏功能。启动后会自动向 ConfigServer 注册并保持心跳。 ## 项目定位 FishGameServer 作为**分服务器**,承担以下职责: - 游戏核心业务逻辑处理 - 玩家数据管理(金币、道具、成就等) - 游戏功能模块(签到、邮件、兑换码、排行榜等) - 与 ConfigServer 保持通信(注册、心跳、配置同步) - Socket 服务(游戏实时通信) ## 目录结构 ``` FishGameServer/ ├── src/ │ ├── main/ │ │ ├── java/org/zy/server/ │ │ │ ├── WebApplicationStarter.java # 启动入口(含ConfigServer注册) │ │ │ ├── controller/ # 控制器层(*GController命名) │ │ │ │ ├── AchievementGController.java # 成就接口 │ │ │ │ ├── AnnouncementGController.java # 公告接口 │ │ │ │ ├── ApiController.java # 通用API接口 │ │ │ │ ├── DistributeAdminController.java # 分发管理接口 │ │ │ │ ├── DistributeController.java # 分发接口 │ │ │ │ ├── FileUploadController.java # 文件上传接口 │ │ │ │ ├── GameItemGController.java # 游戏道具接口 │ │ │ │ ├── LuckyGoldGController.java # 幸运金币接口 │ │ │ │ ├── MailGController.java # 邮件接口 │ │ │ │ ├── NotificationGController.java # 通知接口 │ │ │ │ ├── PlayerGController.java # 玩家接口 │ │ │ │ ├── RankingGController.java # 排行榜接口 │ │ │ │ ├── RedemptionCodeGController.java # 兑换码接口 │ │ │ │ ├── SignInGController.java # 签到接口 │ │ │ │ ├── ShopGController.java # 商店接口 │ │ │ │ ├── TestGController.java # 测试接口 │ │ │ │ ├── TreasureBowlGController.java # 聚宝盆接口 │ │ │ │ ├── UserBatteryGController.java # 用户炮台接口 │ │ │ │ ├── UserGController.java # 用户接口 │ │ │ │ ├── UserShenShaGController.java # 用户神杀接口 │ │ │ │ ├── UserTaskGController.java # 用户任务接口 │ │ │ │ ├── UserWingGController.java # 用户翅膀接口 │ │ │ │ └── VipGController.java # VIP接口 │ │ │ ├── core/ # 核心组件 │ │ │ │ ├── ConfigUtils.java # 配置工具类 │ │ │ │ ├── IdTool.java # ID生成工具(雪花算法) │ │ │ │ ├── ServerConfig.java # 服务器配置(单例,存储服务器信息) │ │ │ │ ├── ServerDao.java # 数据库访问封装 │ │ │ │ ├── SocketContextManager.java # Socket上下文管理 │ │ │ │ ├── SubServerManager.java # 子服务器管理(注册/心跳) │ │ │ │ ├── UrlTool.java # URL/静态资源路径工具 │ │ │ │ └── WebConfig.java # Web配置 │ │ │ ├── model/ # 配置数据模型(非DB实体,从ConfigServer加载) │ │ │ │ ├── AchieveRewardModel.java # 成就奖励模型 │ │ │ │ ├── BatteryModel.java # 炮台模型 │ │ │ │ ├── CannonModel.java # 炮管模型 │ │ │ │ ├── ConstantModel.java # 常量模型 │ │ │ │ ├── FishModel.java # 鱼模型 │ │ │ │ ├── FishPondModel.java # 鱼池模型 │ │ │ │ ├── FishRateModel.java # 鱼概率模型 │ │ │ │ ├── GoldMineAdditionModel.java # 金矿加成模型 │ │ │ │ ├── GoldMineModel.java # 金矿模型 │ │ │ │ ├── GuideModel.java # 新手引导模型 │ │ │ │ ├── ItemModel.java # 道具模型 │ │ │ │ ├── LuckyGoldModel.java # 幸运金币模型 │ │ │ │ ├── NewPlayerSignInModel.java # 新玩家签到模型 │ │ │ │ ├── PlayerItemGiftModel.java # 玩家道具礼包模型 │ │ │ │ ├── PlayerLevelModel.java # 玩家等级模型 │ │ │ │ ├── RankingFakeModel.java # 排行榜虚拟数据模型 │ │ │ │ ├── SignModel.java # 签到模型 │ │ │ │ ├── SkillModel.java # 技能模型 │ │ │ │ ├── ShopModel.java # 商店模型 │ │ │ │ ├── TaskModel.java # 任务模型 │ │ │ │ ├── UpBatteryModel.java # 炮台升级模型 │ │ │ │ ├── UpGeneralModel.java # 将领升级模型 │ │ │ │ ├── UpWingsModel.java # 翅膀升级模型 │ │ │ │ ├── VipModel.java # VIP模型 │ │ │ │ └── WingModel.java # 翅膀模型 │ │ │ ├── repository/ # 数据访问层 │ │ │ │ ├── AchievementRepository.java # 成就Repo │ │ │ │ ├── AnnouncementRepository.java # 公告Repo │ │ │ │ ├── ArtFontRepository.java # 艺术字体Repo │ │ │ │ ├── CommonDataRepository.java # 公共数据Repo │ │ │ │ ├── DistributeConfigRepository.java # 分发配置Repo │ │ │ │ ├── GameStorageRepository.java # 游戏存储Repo │ │ │ │ ├── ItemFlowRecordRepository.java # 道具流水Repo │ │ │ │ ├── LuckyGoldReceiveRecordRepository.java # 幸运金币领取Repo │ │ │ │ ├── MailReadRecordRepository.java # 邮件阅读Repo │ │ │ │ ├── MailTemplateRepository.java # 邮件模板Repo │ │ │ │ ├── ModelFileRepository.java # 配置文件Repo │ │ │ │ ├── NoviceSignInRepository.java # 新手签到Repo │ │ │ │ ├── RankingRepository.java # 排行榜Repo │ │ │ │ ├── RechargeRecordRepository.java # 充值记录Repo │ │ │ │ ├── RedemptionCodeRepository.java # 兑换码Repo │ │ │ │ ├── RedemptionCodeUsageRepository.java # 兑换码使用Repo │ │ │ │ ├── SignInRepository.java # 签到Repo │ │ │ │ ├── TaskRepository.java # 任务Repo │ │ │ │ ├── TreasureBowlRepository.java # 聚宝盆Repo │ │ │ │ ├── UserBatteryRespository.java # 用户炮台Repo │ │ │ │ ├── UserGameplayMetricsRepository.java # 用户游戏指标Repo │ │ │ │ ├── UserLuckyGoldRepository.java # 用户幸运金币Repo │ │ │ │ ├── UserMailRespository.java # 用户邮件Repo │ │ │ │ ├── UserRepository.java # 用户Repo │ │ │ │ ├── UserShenShaRespository.java # 用户神杀Repo │ │ │ │ ├── UserWingRespository.java # 用户翅膀Repo │ │ │ │ └── ... # 其他Repo │ │ │ ├── bo/ # 业务对象(聚合多个实体) │ │ │ │ └── UserWingSet.java # 用户翅膀集合 │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── UserInfoDto.java # 用户信息DTO │ │ │ │ ├── UserMailDto.java # 用户邮件DTO │ │ │ │ └── WingsDto.java # 翅膀DTO │ │ │ ├── vo/ # 视图对象 │ │ │ │ ├── LoginVo.java # 登录响应VO │ │ │ │ ├── LuckyGoldGetVo.java # 幸运金币获取VO │ │ │ │ ├── ModelFileVo.java # 配置文件VO │ │ │ │ ├── RankingVo.java # 排行榜VO │ │ │ │ ├── RegisterVo.java # 注册VO │ │ │ │ └── UpdateUserVo.java # 更新用户VO │ │ │ ├── enums/ # 枚举类 │ │ │ │ ├── AnnouncementType.java # 公告类型 │ │ │ │ ├── FishType.java # 鱼类型 │ │ │ │ ├── ItemType.java # 道具类型 │ │ │ │ ├── ItemFlowRecordPropTypeEnum.java # 道具流水类型 │ │ │ │ └── TaskType.java # 任务类型 │ │ │ ├── constant/ # 常量类 │ │ │ │ ├── GameItemConstant.java # 游戏道具常量 │ │ │ │ └── RankingConstant.java # 排行榜常量 │ │ │ ├── utils/ # 工具类 │ │ │ │ ├── GameMath.java # 游戏数学计算 │ │ │ │ ├── GameUtils.java # 游戏通用工具 │ │ │ │ ├── StringTools.java # 字符串工具 │ │ │ │ └── TemplateUtils.java # 模板工具 │ │ │ └── service/ # 服务层 │ │ │ ├── OcrService.java # OCR识别服务 │ │ │ └── RenderImpl.java # 渲染实现 │ │ └── resources/ │ │ ├── app.yml # 主配置文件 │ │ ├── app-custom.yml # 自定义配置(可覆盖主配置) │ │ ├── 架构提示词.txt # AI代码生成规范文档(与ConfigServer一致) │ │ ├── beetl.properties # Beetl模板配置 │ │ └── logback.xml # 日志配置 │ └── test/ # 测试代码 ├── html/ # 静态资源目录 ├── logs/ # 日志目录 ├── target/ # 构建产物 ├── pom.xml # Maven配置 └ └ app.sh # 启动脚本 ``` ## 技术栈 与 ConfigServer 基本一致,额外包含: - Socket 服务(端口 8888) ## 配置说明 ### 数据库配置(app.yml) ```yaml db: url: jdbc:mariadb://192.168.124.20:3306/fishgamedb username: root password: 123456 server: port: 7008 # HTTP端口 socket: enable: true port: 8888 # Socket端口 boss-threads: 1 worker-threads: 4 ``` ### ConfigServer连接配置(app-custom.yml) ```yaml # 子服务器注册配置 version: v1.0 version-id: 1 server-name: dev1 server-type: GameServer platform-id: 1 platform-name: 测试平台 login-server-url: http://192.168.124.20:5001 # ConfigServer地址 recharge-server-url: "" game_server: domain: localhost sub-server-auth-key: your-secret-key-here # 与ConfigServer的SysConfig中的key一致 ``` ## 核心API接口 所有游戏业务接口均使用 `*GController` 命名,参数通过 `@Header String token` 获取用户标识。 | 接口路径 | 控制器 | 功能 | |----------|--------|------| | `/user/*` | UserGController | 用户登录、注册、信息更新 | | `/player/*` | PlayerGController | 玩家数据管理 | | `/ranking/*` | RankingGController | 排行榜查询 | | `/signIn/*` | SignInGController | 签到功能 | | `/mail/*` | MailGController | 邮件系统 | | `/shop/*` | ShopGController | 商店购买 | | `/task/*` | UserTaskGController | 任务系统 | | `/achievement/*` | AchievementGController | 成就系统 | | `/vip/*` | VipGController | VIP功能 | | `/redemptionCode/*` | RedemptionCodeGController | 兑换码使用 | | `/luckyGold/*` | LuckyGoldGController | 幸运金币 | | `/wing/*` | UserWingGController | 翅膀系统 | | `/battery/*` | UserBatteryGController | 炮台系统 | | `/item/*` | GameItemGController | 道具系统 | | `/treasureBowl/*` | TreasureBowlGController | 聚宝盆 | ## 与ConfigServer的通信 ### 注册流程(SubServerManager) ```java // 启动时自动注册 SubServerManager.getInstance().start(); // 注册接口调用 POST http://{login-server-url}/subServer/register ?authKey={sub-server-auth-key} &platformName={platform-name} &port={port} &version={version} &name={server-name} &domain={domain} ``` ### 心跳机制 - 每 2 秒发送心跳 - 心跳失败后自动重新注册 - ConfigServer 10秒未收到心跳则标记离线 ### 配置获取 ```java // 从ConfigServer获取配置文件 ServerConfig.getInstance().fetchMfileByPlatformName(); // 调用 GET /mfile/findByPlatformName?platformName={name}&platformVersionName={version} ``` ## 启动方式 ```bash # Maven构建 mvn clean package # 启动(需先启动ConfigServer) java -jar target/FishGameServer.jar # 注意:启动前需配置 app-custom.yml 中的 login-server-url ``` --- # 两服务器架构图 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ ConfigServer │ │ (总服务器/配置中心) │ │ ┌─────────────────────────────────────────────────────────────────┐│ │ │ 端口: 5001 (HTTP) ││ │ │ 数据库: game_config_db ││ │ │ ││ │ │ 核心功能: ││ │ │ - 配置文件管理 ││ │ │ - 子服务器注册/监控 ││ │ │ - 用户认证 ││ │ │ - API文档生成 ││ │ │ - 代码生成 ││ │ └─────────────────────────────────────────────────────────────────┘│ │ ↑ │ │ │ 注册 + 心跳 │ │ │ 配置同步 │ └──────────────────────────────│──────────────────────────────────────┘ │ ↓ ┌─────────────────────────────────────────────────────────────────────┐ │ FishGameServer │ │ (分服务器/游戏服务器) │ │ ┌─────────────────────────────────────────────────────────────────┐│ │ │ 端口: 7008 (HTTP) + 8888 (Socket) ││ │ │ 数据库: fishgamedb ││ │ │ ││ │ │ 核心功能: ││ │ │ - 用户登录/注册 ││ │ │ - 游戏业务(签到、邮件、道具、排行榜等) ││ │ │ - 玩家数据管理 ││ │ │ - Socket实时通信 ││ │ │ ││ │ │ 关键组件: ││ │ │ - SubServerManager (向ConfigServer注册/心跳) ││ │ │ - ServerConfig (服务器配置信息) ││ │ │ - Model (从ConfigServer加载的配置模型) ││ │ └─────────────────────────────────────────────────────────────────┘│ └─────────────────────────────────────────────────────────────────────┘ ``` --- # AI代码生成规范(架构提示词) 两个项目共享相同的代码规范,详见 `src/main/resources/架构提示词.txt`。 ## 分层架构 | 层 | 包 | 职责 | |----|-----|------| | Controller | .controller | 接收HTTP请求,参数校验,调用Manager,返回Result | | Domain | .domain | 实体类+业务方法,使用Nutz注解映射表 | | DTO | .dto | 接口数据载体,含静态工厂方法 | | Repository | .repository | 数据库操作,注入ServerDao | | Manager | .manager | 业务逻辑+缓存,操作领域对象 | | BO | .bo | 纯内存业务对象,聚合多个实体 | | Model | .model | 静态配置模型(非DB实体) | ## 命名约定 | 类型 | 示例 | 规则 | |------|------|------| | Controller | AchievementGController | 功能名+GController | | Domain | User | 大驼峰,与表名对应 | | DTO | AchievementDto | 功能名+Dto | | Repository | UserRepository | 实体名+Repository | | Manager | UserManager | 实体名+Manager | | BO | UserAchievementSet | 描述性名词 | ## 关键约束 1. 禁止Controller直接操作Repo,必须通过Manager 2. 禁止在Domain中注入外部组件 3. 所有缓存使用ConcurrentHashMap 4. 字符串ID统一由IdTool.nextId()生成 5. 数据库引擎一律MyISAM