IceeBoot——用Trae写的SpringBoot+Mcp+AI大模型的开发脚手架
🚀 IceeBoot超级脚手架
这是我花了一个月的时间用AI写的一个开发脚手架,基于 SpringBoot + Ai大模型 + Mcp + Vue 3 + TypeScript + Element Plus 的现代化前后端分离管理系统
🕸️项目地址
- 前端:https://gitee.com/woshinibaba438cnmlgb/zboot-frontend-vue
- 后端:https://gitee.com/woshinibaba438cnmlgb/zboot-backend-java
- 使用文档:还没写,带上线…
- 项目官网:还没做,带上线…
📋 环境要求
在开始使用 IceeBoot 之前,请确保您的开发环境满足以下要求:
🔧 必需环境
- JDK 17+:项目基于 Java 17 开发,需要 JDK 17 或更高版本
- Spring Boot 3.3.4:使用最新的 Spring Boot 3.x 版本
- MySQL 8.0+:主数据库,支持 JSON 字段和全文索引等高级特性
- Redis 6.0+:缓存和会话存储,支持 Stream 等新特性
- Maven 3.6+:项目构建和依赖管理工具
🛠️ 开发工具(推荐)
- IntelliJ IDEA 2023+ 或 Eclipse 2023+
- Git 2.30+:版本控制
- Docker(可选):容器化部署
- Postman 或 Apifox:API 测试工具
🌐 第三方服务(可选)
- 阿里云 DashScope:通义千问 AI 大模型服务
- 阿里云 OSS / 腾讯云 COS / 华为云 OBS:对象存储服务
- 阿里云短信 / 腾讯云短信:短信发送服务
- SMTP 邮箱服务:邮件发送功能
🚀 项目简介
IceeBoot 超级脚手架后端版 是一个面向现代化企业级应用开发的全栈后端解决方案。它不仅仅是一个简单的项目模板,更是一个集成了当前最前沿技术栈的智能化开发平台。iceeboot 致力于为开发者提供一个开箱即用、功能完备、易于扩展的后端开发基础设施,让开发者能够专注于业务逻辑的实现,而无需在基础架构搭建上花费大量时间。
在当今快速发展的技术环境中,企业对于软件开发的效率和质量要求越来越高。传统的从零开始搭建项目架构的方式已经无法满足快速迭代的需求。iceeboot 应运而生,它整合了业界最佳实践,融合了人工智能技术,为开发团队提供了一个强大而灵活的开发平台。
🖼️ 功能展示
以下是 IceeBoot 的主要功能界面展示:
📊 系统主页
首页展示 - 数据统计图表和系统状态监控
系统主页 - 展示系统概览、统计数据和快捷操作入口
首页展示 - 更多功能模块和操作面板
🤖 AI 智能功能
AI 功能展示 - 智能对话、文本生成和AI助手功能
AI 集成展示 - 多种AI模型集成管理和配置界面
⚙️ 代码生成器
代码生成器 - 基于数据库表结构自动生成完整的CRUD代码
📈 系统监控
系统监控 - 实时监控系统性能、资源使用情况和运行状态
🎯 设计理念
- 开箱即用:最小化配置,最大化功能,让开发者能够在最短时间内启动项目
- 智能化集成:深度集成AI大模型和智能体技术,为应用赋予智能化能力
- 企业级标准:采用企业级开发标准和最佳实践,确保代码质量和系统稳定性
- 高度可扩展:模块化设计,支持灵活的功能扩展和定制化开发
- 安全优先:内置完善的安全机制,从接口级别保障系统安全
🛠️ 核心技术栈
iceeboot 采用了当前最主流和成熟的技术栈,确保项目的稳定性、可维护性和扩展性:
后端核心框架
- Spring Boot 3.3.4:最新的Spring Boot版本,提供自动配置、依赖注入、AOP等企业级功能
- Spring WebFlux:响应式编程支持,提供非阻塞的Web服务能力
- Spring AOP:面向切面编程,支持事务管理、日志记录等横切关注点
- Spring Validation:参数校验框架,支持JSR-303标准和自定义校验规则
AI与智能化
- Spring AI Alibaba 1.0.0-M5.1:阿里云官方Spring AI实现,深度集成通义千问等AI模型
- Function Calling:支持AI函数调用,实现智能数据库查询等功能
- WebFlux Reactive:支持AI模型的流式响应和异步处理
数据持久化
- MyBatis-Plus 3.5.9:MyBatis的增强版本,提供代码生成、分页、性能分析等功能
- MySQL Connector 8.0.33:MySQL官方驱动,支持最新的MySQL 8.0特性
- Spring Data Redis:Redis集成,支持缓存、会话存储和分布式锁
- Spring Data MongoDB:MongoDB文档数据库支持
- Spring Data Elasticsearch:全文搜索和数据分析支持
权限认证与安全
- Sa-Token 1.37.0:轻量级权限认证框架,支持多种认证模式和细粒度权限控制
- Sa-Token Redis Jackson:Sa-Token的Redis序列化支持
- Spring Security Crypto 6.2.0:密码加密和安全工具
消息队列与任务调度
- Spring Boot AMQP:RabbitMQ消息队列集成
- Spring Boot Quartz:定时任务调度框架
- Activiti 7.1.0.M6:工作流引擎,支持业务流程管理
对象存储服务
- 阿里云OSS SDK 3.17.4:阿里云对象存储服务
- 华为云OBS SDK 3.21.8:华为云对象存储服务
- 腾讯云COS SDK 5.6.155:腾讯云对象存储服务
- 七牛云Kodo SDK 7.15.1:七牛云对象存储服务
- MinIO SDK 8.5.7:开源对象存储服务
开发工具与中间件
- Knife4j 4.3.0:基于OpenAPI 3.0的API文档生成和调试工具
- Hutool 5.8.22:Java工具类库,提供丰富的工具方法
- FastJSON2 2.0.43:阿里巴巴高性能JSON处理库
- Apache Commons Lang3:Apache通用工具库
- Apache Commons Collections4 4.4:集合工具库
- Beetl 3.15.10:模板引擎,用于代码生成
- Lombok:简化Java代码编写,自动生成getter/setter等方法
🔐 权限控制系统
iceeboot 采用 Sa-Token 作为权限认证框架,实现了业界领先的细粒度权限控制体系:
权限控制特性
- 接口级权限控制:每个API接口都可以独立配置访问权限,确保系统安全
- 角色权限管理:支持多角色、多权限的复杂权限模型
- 动态权限分配:支持运行时动态调整用户权限,无需重启系统
- 权限缓存机制:基于Redis的权限缓存,提升权限验证性能
- 会话管理:支持单点登录、踢人下线、会话共享等功能
安全防护机制
- 防重放攻击:基于时间戳和随机数的防重放机制
- 接口限流:支持基于IP、用户、接口的多维度限流
- SQL注入防护:MyBatis预编译语句,有效防止SQL注入
- XSS防护:输入输出过滤,防止跨站脚本攻击
🤖 AI大模型集成
iceeboot 紧跟人工智能发展趋势,深度集成了国内外主流AI大模型,为应用提供强大的智能化能力:
🌟 Spring AI Alibaba 集成
IceeBoot 深度集成了 Spring AI Alibaba,这是阿里云官方推出的 Spring AI 实现,专门针对阿里云的AI服务进行了优化。
核心特性
- 开箱即用:只需配置API密钥即可快速接入通义千问等模型
- Spring Boot 自动配置:完全符合Spring Boot的配置理念
- 流式响应支持:支持SSE流式输出,提升用户体验
- Function Calling:支持函数调用,实现AI与业务系统的深度集成
- 多模态支持:支持文本、图像等多种输入模式
快速配置
- 添加依赖(已集成)
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter</artifactId>
<version>1.0.0-M5.1</version>
</dependency>
- 配置API密钥
在application-dev.yml
中添加配置:
spring:
ai:
dashscope:
api-key: sk-your-dashscope-api-key # 在阿里云DashScope控制台获取
chat:
options:
model: qwen-plus # 可选:qwen-turbo, qwen-plus, qwen-max
temperature: 0.7
max-tokens: 2000
- 获取API密钥
- 访问 阿里云DashScope控制台
- 注册并实名认证
- 创建API密钥
- 复制密钥到配置文件
支持的模型
- qwen-turbo:响应速度快,适合对话场景
- qwen-plus:平衡性能和成本,推荐使用
- qwen-max:最强性能,适合复杂任务
- qwen-max-longcontext:支持长文本处理
- qwen2.5系列:最新的Qwen2.5模型家族
Function Calling 功能
IceeBoot 实现了智能的 Function Calling 功能,AI可以自动调用系统函数:
@Bean
@Description("查询数据库获取信息")
public Function<DatabaseQueryRequest, DatabaseQueryResponse> databaseQuery(
DatabaseQueryFunction databaseQueryFunction) {
return databaseQueryFunction;
}
用户可以通过自然语言查询数据库:
- “查询最近注册的用户”
- “统计今天的活跃用户数量”
- “显示所有管理员角色”
国内AI大模型
- 通义千问:阿里巴巴达摩院开发的大语言模型,通过Spring AI Alibaba深度集成
- DeepSeek:深度求索科技的大语言模型,在代码生成和逻辑推理方面表现优异
- 文心一言:百度推出的知识增强大语言模型,具备强大的中文理解和生成能力
- Kimi:月之暗面公司的长文本处理大模型,支持超长上下文理解
国外AI大模型
- ChatGPT:OpenAI的GPT系列模型,在对话和文本生成方面表现卓越
- Grok:xAI公司开发的大语言模型,具有独特的幽默感和创造力
- Gemini:Google的多模态大模型,支持文本、图像、音频等多种输入
- Claude:Anthropic公司的AI助手,在安全性和有用性方面表现突出
AI集成特性
- 统一API接口:提供统一的调用接口,支持快速切换不同的AI模型
- 智能路由:根据任务类型自动选择最适合的AI模型
- 结果缓存:对AI模型的响应结果进行缓存,提升响应速度和降低成本
- 错误重试:智能的错误处理和重试机制,确保服务稳定性
🤖 Agent智能体支持
iceeboot 引入了先进的Agent智能体技术,支持构建和集成智能化的业务流程:
支持的Agent平台
- Coze:字节跳动推出的AI Bot开发平台,支持快速构建智能对话机器人
- Dify:开源的LLM应用开发平台,提供可视化的AI应用构建能力
Agent功能特性
- 工作流编排:支持复杂业务流程的自动化编排和执行
- 多模态交互:支持文本、语音、图像等多种交互方式
- 知识库集成:可以接入企业知识库,提供专业领域的智能问答
- API调用能力:Agent可以调用系统API,实现业务操作的自动化
🔧 第三方服务集成
iceeboot 内置了多种常用的第三方服务,开箱即用,大大提升开发效率:
短信服务 (SMS)
- 多厂商支持:集成阿里云、腾讯云、华为云等主流短信服务商
- 模板管理:支持短信模板的统一管理和动态配置
- 发送记录:完整的短信发送记录和状态跟踪
- 限流控制:防止短信轰炸,支持基于手机号的发送频率限制
对象存储服务 (OSS)
- 多云支持:支持阿里云OSS、腾讯云COS、华为云OBS等
- 文件管理:提供文件上传、下载、删除、预览等完整功能
- 图片处理:支持图片压缩、裁剪、水印等处理功能
- CDN加速:集成CDN服务,提升文件访问速度
邮件服务 (Email)
- SMTP支持:支持各种SMTP邮件服务器
- 模板邮件:支持HTML邮件模板和动态内容填充
- 批量发送:支持邮件的批量发送和队列处理
- 发送统计:提供邮件发送成功率和打开率统计
接口文档
- Swagger集成:自动生成API文档,支持在线调试
- 版本管理:支持API版本管理和向后兼容
- 权限标注:文档中自动标注接口所需权限
- 示例代码:自动生成多种语言的调用示例
日志系统
- 自动捕获:自动捕获系统运行日志、错误日志、业务日志
- 结构化日志:支持JSON格式的结构化日志输出
- 日志分析:集成ELK栈,支持日志的搜索和分析
- 告警机制:支持基于日志的实时告警和通知
⚡ 轻量化设计
iceeboot 秉承"简单即美"的设计理念,提供轻量化的开发体验:
极简配置
- 零配置启动:除了数据库连接,几乎无需其他配置即可启动项目
- 智能默认值:所有配置项都有合理的默认值,支持渐进式配置
- 环境隔离:支持开发、测试、生产环境的配置隔离
- 配置热更新:支持部分配置的热更新,无需重启服务
依赖管理
- 最小依赖:只引入必要的依赖,避免jar包冲突
- 版本锁定:锁定依赖版本,确保构建的一致性
- 依赖分析:提供依赖分析工具,帮助优化项目结构
快速启动
- 配置MySQL数据库连接
- 配置Redis连接信息
- 运行主类,系统自动完成初始化
- 访问Swagger文档,开始API开发
🔨 智能代码生成器
iceeboot 内置了强大的代码生成器,支持基于数据库表结构的代码自动生成:
生成能力
- 完整的CRUD代码:自动生成Controller、Service、ServiceImpl、Mapper、Entity等
- DTO和VO类:自动生成数据传输对象和视图对象
- Swagger注解:自动添加API文档注解
- 权限注解:根据配置自动添加权限控制注解
模板定制
- 可定制模板:支持自定义代码生成模板
- 命名规范:支持多种命名规范的配置
- 包结构:支持自定义包结构和文件组织方式
- 代码风格:支持不同的代码风格和格式化规则
智能特性
- 字段类型映射:智能映射数据库字段类型到Java类型
- 关联关系处理:自动处理表之间的关联关系
- 索引优化建议:根据查询模式提供索引优化建议
🗄️ 数据库自动管理
iceeboot 提供了智能的数据库管理功能,大大简化了数据库维护工作:
自动建表
- 启动检测:项目启动时自动检测数据库结构
- 表结构同步:根据Entity类自动创建或更新表结构
- 字段变更:支持字段的新增、修改、删除等操作
- 索引管理:自动创建和维护数据库索引
数据迁移
- 版本控制:支持数据库版本控制和迁移脚本管理
- 回滚机制:支持数据库结构的回滚操作
- 数据备份:自动备份重要数据,防止数据丢失
性能优化
- 慢查询监控:自动监控和记录慢查询
- 连接池优化:智能的数据库连接池配置
- 缓存策略:多级缓存策略,提升数据访问性能
🚧 项目现状与发展规划
当前状态
iceeboot 项目目前处于快速发展阶段,虽然开发时间不到一个月,但已经具备了完整的基础功能和核心特性。项目采用敏捷开发模式,持续迭代和完善功能。
已完成功能
- ✅ 基础架构搭建
- ✅ 权限认证系统
- ✅ AI大模型集成
- ✅ 第三方服务集成
- ✅ 代码生成器
- ✅ 数据库自动管理
- ✅ 接口文档生成
- ✅ 日志系统
未来规划
短期目标(1-3个月)
- MCP协议集成:引入Model Context Protocol,提升AI模型的上下文理解能力
- 插拔式AI接口:实现AI接口的插拔式架构,支持快速集成新的AI模型
- 性能监控:集成APM工具,提供系统性能监控和分析
- 单元测试:完善单元测试覆盖率,确保代码质量
中期目标(3-6个月)
- 微服务支持:支持微服务架构,提供服务注册发现、配置中心等功能
- 消息队列集成:集成RabbitMQ、Kafka等消息中间件
- 分布式事务:支持分布式事务处理
- 多租户支持:提供SaaS化的多租户解决方案
长期目标(6个月以上)
- 前端脚手架:开发配套的前端脚手架,实现全栈开发
- DevOps集成:集成CI/CD流水线,支持自动化部署
- 云原生支持:支持Docker、Kubernetes等云原生技术
- 国际化:支持多语言和国际化功能
📁 项目结构
iceeboot-backend-java/
├── 📁 src/
│ ├── 📁 main/
│ │ ├── 📁 java/
│ │ │ └── 📁 com/iceeboot/
│ │ │ ├── 📁 common/ # 通用模块
│ │ │ │ ├── 📁 config/ # 配置类
│ │ │ │ ├── 📁 constant/ # 常量定义
│ │ │ │ ├── 📁 exception/ # 异常处理
│ │ │ │ ├── 📁 service/ # 通用服务
│ │ │ │ │ ├── 📁 ai/ # AI服务集成
│ │ │ │ │ ├── 📁 email/ # 邮件服务
│ │ │ │ │ ├── 📁 sms/ # 短信服务
│ │ │ │ │ └── 📁 oss/ # 对象存储服务
│ │ │ │ └── 📁 util/ # 工具类
│ │ │ ├── 📁 generator/ # 代码生成器
│ │ │ │ ├── 📄 CodeGenerator.java # 核心生成器
│ │ │ │ └── 📁 templates/ # 代码模板
│ │ │ ├── 📁 project/ # 业务模块
│ │ │ │ └── 📁 iceeboot_test/ # 示例业务模块
│ │ │ │ ├── 📁 controller/ # 控制器层
│ │ │ │ ├── 📁 service/ # 服务层
│ │ │ │ │ └── 📁 impl/ # 服务实现
│ │ │ │ ├── 📁 mapper/ # 数据访问层
│ │ │ │ ├── 📁 entity/ # 实体类
│ │ │ │ ├── 📁 dto/ # 数据传输对象
│ │ │ │ │ ├── 📁 create/ # 创建DTO
│ │ │ │ │ └── 📁 update/ # 更新DTO
│ │ │ │ ├── 📁 vo/ # 视图对象
│ │ │ │ └── 📁 query/ # 查询对象
│ │ │ └── 📄 iceebootApplication.java # 启动类
│ │ └── 📁 resources/
│ │ ├── 📄 application.yml # 主配置文件
│ │ ├── 📄 application-dev.yml # 开发环境配置
│ │ ├── 📄 application-prod.yml # 生产环境配置
│ │ ├── 📁 mapper/ # MyBatis映射文件
│ │ ├── 📁 templates/ # 代码生成模板
│ │ │ ├── 📄 controller.btl
│ │ │ ├── 📄 service.btl
│ │ │ ├── 📄 serviceImpl.btl
│ │ │ ├── 📄 mapper.btl
│ │ │ ├── 📄 entity.btl
│ │ │ ├── 📄 createDto.btl
│ │ │ ├── 📄 updateDto.btl
│ │ │ ├── 📄 vo.btl
│ │ │ ├── 📄 query.btl
│ │ │ └── 📄 mapperXml.btl
│ │ └── 📁 static/ # 静态资源
│ └── 📁 test/ # 测试代码
│ └── 📁 java/
├── 📁 logs/ # 日志文件
├── 📁 disabled/ # 禁用模块示例
├── 📄 pom.xml # Maven配置文件
├── 📄 README.md # 项目说明文档
├── 📄 api.md # API文档
├── 📄 package.md # 打包说明
├── 📄 mock.md # Mock数据说明
└── 📄 .gitignore # Git忽略文件
📖 使用指南
🚀 快速启动
-
克隆项目
git clone https://github.com/your-username/iceeboot-backend-java.git cd iceeboot-backend-java
-
配置数据库
# application-dev.yml spring: datasource: url: jdbc:mysql://localhost:3306/iceeboot?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 username: your_username password: your_password
-
配置Redis
# application-dev.yml spring: redis: host: localhost port: 6379 password: your_redis_password
-
启动项目
mvn spring-boot:run
-
访问接口文档
打开浏览器访问:http://localhost:9000/doc.html
🤖 AI大模型调用
IceeBoot 集成了 Spring AI Alibaba,支持通义千问等多种AI大模型。
配置AI模型
在 application-dev.yml
中配置您的API密钥:
spring:
ai:
dashscope:
api-key: sk-your-dashscope-api-key
基础对话调用
@RestController
@RequiredArgsConstructor
public class ChatController {
private final ChatModel chatModel;
@PostMapping("/chat")
public String chat(@RequestBody String message) {
return chatModel.call(new Prompt(message))
.getResult()
.getOutput()
.getContent();
}
}
流式对话调用(在StreamChatRequest里面写好参数和上下文自动配置到对应模型)
@Operation(summary = "流式对话")
@PostMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
// @RequirePermission(dynamic = true)
public Flux<String> streamChat(@Validated @RequestBody StreamChatRequest request) {
return aiChatService.streamChat(request)
.map(response -> {
try {
// 将LLMResponse转换为SSE格式
if (response.getError() != null) {
return "data: {\"error\":\"" + response.getError() + "\",\"finished\":true}\n\n";
}
if (response.getChoices() != null && !response.getChoices().isEmpty()) {
var choice = response.getChoices().get(0);
if (choice.getDelta() != null && choice.getDelta().getContent() != null) {
String content = choice.getDelta().getContent().replace("\"", "\\\"").replace("\n", "\\n");
return "data: {\"content\":\"" + content + "\",\"finished\":false}\n\n";
}
}
if (Boolean.TRUE.equals(response.getFinished())) {
return "data: {\"finished\":true}\n\n";
}
return "data: {\"heartbeat\":true}\n\n";
} catch (Exception e) {
return "data: {\"error\":\"数据处理异常\",\"finished\":true}\n\n";
}
})
.onErrorReturn("data: {\"error\":\"流式对话异常\",\"finished\":true}\n\n");
}
多模型支持
系统支持多种AI模型,可以通过配置切换:
- 通义千问:阿里云DashScope平台
- DeepSeek:深度求索大模型
- 文心一言:百度大模型
- ChatGPT:OpenAI模型
- Claude:Anthropic模型
🤖 Agent智能体使用
IceeBoot 支持集成多种Agent平台,实现智能化业务流程。
支持的Agent平台
- Coze(扣子):字节跳动AI Bot开发平台
- Dify:开源LLM应用开发平台
Agent配置管理
// 创建Agent配置
AiAgentDTO agentDto = new AiAgentDTO();
agentDto.setName("客服助手");
agentDto.setPlatform("coze"); // 或 "dify"
agentDto.setType("agent"); // 或 "workflow"
agentDto.setApiUrl("https://api.coze.com/v1/bot/chat");
agentDto.setApiKey("your-agent-api-key");
agentDto.setBotId("your-bot-id");
// 保存Agent配置
aiAgentService.addAgent(agentDto);
Agent调用示例
@Service
@RequiredArgsConstructor
public class AgentService {
private final IAiAgentService aiAgentService;
public String callAgent(String platform, String message) {
// 获取指定平台的Agent
List<AiAgentVO> agents = aiAgentService.getAgentsByPlatform(platform);
if (!agents.isEmpty()) {
AiAgentVO agent = agents.get(0);
// 调用Agent API
return callAgentAPI(agent, message);
}
return "未找到可用的Agent";
}
}
Coze平台集成
// Coze Bot调用示例
public String callCozeBot(String message) {
CozeRequest request = new CozeRequest();
request.setBotId("your-bot-id");
request.setUserId("user-123");
request.setQuery(message);
request.setStream(false);
// 调用Coze API
return cozeClient.chat(request);
}
Dify平台集成
// Dify应用调用示例
public String callDifyApp(String message) {
DifyRequest request = new DifyRequest();
request.setInputs(Map.of("query", message));
request.setQuery(message);
request.setResponseMode("blocking");
request.setUser("user-123");
// 调用Dify API
return difyClient.chatMessages(request);
}
⚙️ 代码生成器
- 运行
CodeGenerator.java
主方法 - 输入包名和实体名称
- 系统自动生成完整的CRUD代码
- 生成的代码包括:
- Controller层:RESTful API接口
- Service层:业务逻辑处理
- Mapper层:数据访问层
- Entity:实体类
- DTO:数据传输对象
- VO:视图对象
- Query:查询对象
🤝 贡献指南
我们欢迎所有形式的贡献,包括但不限于:
- 🐛 Bug报告
- 💡 功能建议
- 📝 文档改进
- 🔧 代码贡献
- 🧪 测试用例
贡献流程
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 创建 Pull Request
📄 开源协议
本项目采用 MIT License 开源协议。
📞 联系我
如果您有任何问题、建议或合作意向,欢迎通过以下方式联系:
- 📧 邮箱:857787854@qq.com
- 💬 QQ群:待建立
- 🐧 QQ:857787854
- 🛰️ 微信:CodeIcee
🙏 致谢
感谢以下开源项目和技术社区的支持:
- Spring Boot
- MyBatis
- Sa-Token
- Knife4j
- 以及所有为开源社区做出贡献的开发者们
⭐ 如果这个项目对您有帮助,请给我们一个Star!
🚀 让我们一起构建更好的开发体验!
更多推荐
所有评论(0)