SpringBoot+Vue远程医疗咨询系统毕业设计实战指南
1. 先搞清楚这个项目到底要解决什么实际问题如果你正在为计算机相关专业的毕业设计或课程设计发愁尤其是想找一个既有实际应用价值、技术栈又主流、还能体现一定工程量的项目那么一个基于SpringBoot的远程医疗咨询系统特别是面向农村地区是一个相当不错的选择。这个主题的核心价值在于它不是一个简单的增删改查CRUD系统而是结合了特定场景农村医疗资源不均的真实痛点用技术手段远程咨询去尝试解决。对于学生来说这意味着你的项目报告和答辩有故事可讲有背景可依而不仅仅是技术堆砌。这个系统要解决的核心问题是如何让乌兰察布市农村地区的居民能够便捷地通过互联网获得初步的医疗咨询和健康指导缓解因地域限制造成的“看病难”问题。所以你的系统设计必须紧紧围绕“远程”和“咨询”这两个关键词展开。它不是要做一个完整的在线诊疗平台那涉及更复杂的资质和流程而是聚焦于信息沟通、预约、图文/视频咨询、档案管理等核心环节。从技术实现角度看一个典型的远程医疗咨询系统会包含以下模块用户端患者/居民注册登录、个人信息管理、医生查询与选择、在线咨询文字、图片、可能的话音视频、健康档案查看、预约挂号、查看历史记录等。医生端医生信息管理、排班设置、接诊处理回复咨询、开具电子建议等、患者档案查看。管理后台用户与医生管理、咨询订单管理、系统数据统计、公告发布等。采用SpringBoot作为后端框架几乎是当前Java领域毕业设计的“标准答案”。它简化了配置让你能快速搭建起一个稳健的Web服务把更多精力放在业务逻辑和数据库设计上。结合热词中频繁出现的“Vue前后端分离”这意味着你的项目可以采用更现代化的架构SpringBoot提供RESTful APIVue.js作为前端框架两者通过HTTP接口交互。这种架构清晰前后端职责分离也符合当前企业的主流开发模式。2. 环境准备与项目骨架搭建别在起点卡住在开始敲代码之前把环境理顺是避免后续无数坑的关键。我建议你严格按照以下顺序来不要跳步。2.1 开发环境清单与版本选择首先明确你的“作战装备”。版本选择上追求稳定和资料丰富而不是一味求新。JDK推荐 JDK 8 或 JDK 11。这是SpringBoot 2.x 系列最兼容的版本。确保java -version命令能正确输出。IDEIntelliJ IDEA Ultimate学生可免费申请或 Community 版。热词里也有“idea创建springboot项目”IDEA对SpringBoot的支持是顶级的能极大提升效率。Eclipse with STS插件也可但体验稍逊。项目管理与构建工具Maven或Gradle。SpringBoot Initializr 默认提供两者选项。Maven的pom.xml配置文件更为常见资料也多新手建议选它。数据库MySQL 5.7 或 8.0。这是最常用的关系型数据库。你需要提前安装并启动MySQL服务创建一个用于本项目的数据库例如remote_medical。版本控制Git。从第一天就使用Git管理代码这是必备的工程习惯。在GitHub或Gitee上创建一个私有仓库。前端环境如果前后端分离Node.js和npm。用于运行和构建Vue.js项目。建议安装LTS版本。API测试工具Postman或Apifox。用于测试你编写的后端接口比用浏览器或写前端测试更快。2.2 使用 Spring Initializr 快速初始化项目这是项目的起点很多同学在这里会纠结选什么依赖。记住一个原则按需引入不够再加。打开 IDEA选择File - New - Project。左侧选择Spring Initializr选择合适的JDK版本。填写项目元数据Group, Artifact, Name。例如com.wulanchabu,remote-medical,RemoteMedicalSystem。类型选Maven语言Java打包方式Jar这是SpringBoot的推荐方式。Java版本选择你安装的版本如 8 或 11。依赖选择这是关键一步。在Dependencies搜索框中添加Spring Web提供Web MVC功能构建RESTful API的核心。Spring Data JPA或MyBatis。两者都是持久层框架。JPA更“Spring Way”用起来简单MyBatis对复杂SQL更灵活。热词里有“springboot整合mybatis”说明MyBatis很受欢迎。我建议新手从 JPA 开始因为它能帮你快速生成基础CRUD代码。如果你对SQL掌握很好选MyBatis。MySQL Driver连接MySQL数据库。Lombok强烈推荐通过注解自动生成Getter/Setter、构造方法等让实体类代码非常简洁。可选Spring Security如果你需要做详细的用户认证和授权如区分患者、医生、管理员可以加入。但初期为了简化可以用简单的拦截器或注解做权限控制。点击FinishIDEA会自动下载依赖并创建项目。2.3 基础配置与目录结构规划项目创建后先别急着写业务代码。做好这几件基础事配置数据库连接打开src/main/resources/application.properties或application.yml我更推荐yml格式清晰。配置你的数据库信息。spring: datasource: url: jdbc:mysql://localhost:3306/remote_medical?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghai username: root password: yourpassword driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update # 初期开发用update自动更新表结构。生产环境务必改为validate或none show-sql: true # 在控制台打印SQL调试非常有用 properties: hibernate: dialect: org.hibernate.dialect.MySQL5InnoDBDialect规划包结构一个清晰的包结构能让项目更易维护。通常可以这样划分com.wulanchabu.remotemedical ├── controller # 控制器接收请求调用服务 ├── service # 业务逻辑层接口 ├── service/impl # 业务逻辑层实现 ├── repository # 或 mapper数据访问层JPA叫RepositoryMyBatis叫Mapper ├── entity # 或 domain/model实体类对应数据库表 ├── dto # 数据传输对象用于前后端交互 ├── vo # 视图对象用于返回给前端的特定数据封装 ├── config # 配置类如Web配置、拦截器、Swagger配置 └── utils # 工具类统一响应格式设计一个通用的结果返回类如Result或ApiResponse包含code、message、data字段。这样前端处理响应会非常规范。3. 核心业务模块设计与实现要点现在进入重头戏。我们围绕“远程医疗咨询”这个核心场景拆解几个关键模块的实现思路和容易踩的坑。3.1 用户体系与权限设计区分患者、医生和管理员这是系统的基石。一张user表打天下还是分patient、doctor、admin表方案一单表角色字段设计一张user表包含id,username,password,phone,avatar等公共字段再加一个role字段如0-患者1-医生2-管理员。这种方式简单但医生特有的字段如职称、科室、简介、执业编号就需要额外处理要么设为可空要么用另一张表关联。方案二继承或关联设计一个User基类/表包含登录认证信息。然后Patient和Doctor分别扩展/关联自己的表。这种方式更符合领域模型结构清晰但关联查询稍复杂。毕业设计建议采用方案一。在user表中增加role字段并为医生信息增加title职称、department科室、introduction简介、certificate_no执业证号等字段。管理员可以看作是拥有所有权限的特殊角色。这样实现起来最快也足够清晰。权限控制在Controller的方法上使用注解进行粗粒度控制。你可以自定义一个注解如PreAuthorize(hasRole(DOCTOR))或者使用Spring Security的Secured。对于简单的毕业设计甚至在每个需要权限的方法里手动从Session或Token中解析用户角色进行判断也是可行的。3.2 咨询业务的核心流程与表设计这是系统的灵魂。核心实体至少包括Consultation咨询单、Message咨询消息。consultation咨询表id主键。patient_id患者ID外键关联user.id。doctor_id医生ID外键关联user.id。status状态0-待接诊1-咨询中2-已结束3-已取消。状态机设计是业务逻辑的关键。type咨询类型0-图文1-语音2-视频。初期可以先实现图文。symptoms患者描述的症状。doctor_advice医生的诊断建议。create_time、update_time创建和更新时间。message消息表用于图文咨询的聊天id主键。consultation_id所属咨询单ID。sender_id发送者ID患者或医生。content消息内容文本。content_type消息类型0-文本1-图片2-语音。存储图片/语音的URL。send_time发送时间。业务流程患者发起咨询患者选择医生填写症状描述创建一条状态为“待接诊”的consultation记录。医生接诊医生在自己的待办列表看到该咨询点击“接诊”将状态改为“咨询中”。此时双方可以开始基于该consultation_id发送message。咨询过程前后端通过WebSocket或轮询API获取和发送message。对于毕业设计如果时间紧可以用“发送消息”的HTTP API配合前端定时轮询来模拟实时聊天这是最简单的实现方式。WebSocket热词中有websocket客户端 springboot体验更好但复杂度也高。结束咨询医生给出总结性建议填入consultation.doctor_advice并将状态改为“已结束”。3.3 文件上传与存储病历和图片怎么处理患者可能需要上传病历图片医生也可能发送图片说明。SpringBoot处理文件上传很简单但要注意以下几点依赖Spring Web本身已支持。配置大小限制在application.yml中配置防止大文件攻击。spring: servlet: multipart: max-file-size: 10MB max-request-size: 100MBController层使用PostMapping(/upload)和MultipartFile参数接收文件。存储方案本地存储最简单。指定一个服务器上的目录如/upload用File.transferTo()保存。缺点是集群部署时文件同步麻烦且需要配置静态资源映射。云存储推荐使用阿里云OSS、腾讯云COS等对象存储服务。虽然需要一点学习成本但这是生产环境的标准做法也更适合“远程”系统的定位。SDK集成很方便。数据库记录文件上传后得到一个访问URL如https://your-bucket.cos.ap-beijing.myqcloud.com/medical/202305/image123.jpg。将这个URL存入数据库对应的字段如message表的content当content_type为图片时而不是存文件本身。3.4 数据库连接与ORM框架实战JPA/MyBatis热词中既有“Spring Data JPA”也有“springboot整合mybatis”这里分别说一下。使用 Spring Data JPA你的entity类使用Entity,Id,GeneratedValue等注解。为每个entity创建对应的Repository接口继承JpaRepositoryEntity, ID立刻拥有了基础的CRUD方法。复杂查询使用Query注解写JPQL或原生SQL。优点开发速度快代码简洁与Spring生态集成度极高。注意ddl-auto: update在开发时方便但要注意它可能不会删除列复杂修改不如手动维护SQL脚本可靠。使用 MyBatis-Plus这是一个对MyBatis的增强工具能像JPA一样快速CRUD同时保留MyBatis的灵活性。添加依赖mybatis-plus-boot-starter。实体类用TableName,TableId注解。Mapper接口继承BaseMapperEntity。Service层可以使用ServiceImpl快速实现。优点SQL控制力强性能优化方便QueryWrapper进行条件查询非常灵活。对于这个项目如果你对SQL比较熟悉或者查询逻辑比较复杂例如多表关联统计报表MyBatis-Plus是很好的选择。4. 前后端分离与部署上线关键步骤一个完整的毕业设计需要能看到运行效果。前后端分离和部署是最后临门一脚。4.1 后端API设计与前端联调API设计原则RESTful风格。使用HTTP方法表达操作GET-查询POST-创建PUT-更新DELETE-删除URL表示资源。获取用户信息GET /api/users/{id}创建咨询POST /api/consultations获取医生的待接诊列表GET /api/doctors/{id}/consultations?status0接口文档使用Swagger/OpenAPI。添加springfox-boot-starter或springdoc-openapi依赖配置后访问/swagger-ui.html或/v3/api-docs就能看到所有接口文档和测试界面。这对答辩演示极其有用跨域问题前端项目通常运行在localhost:8080访问后端APIlocalhost:8081会遇到跨域问题。在后端通过CrossOrigin注解或全局配置WebMvcConfigurer解决。联调工具使用Postman先独立测试所有后端API确保逻辑和返回数据正确。然后再让前端同学对接。4.2 前端技术选型与快速开发热词里“vue前后端分离”、“vue3实战项目”出现频率很高这指明了方向。技术栈Vue 3 Element Plus或 Ant Design Vue Axios Vue Router。快速搭建使用Vue CLI或更现代的Vite创建项目。开发要点路由管理根据角色患者、医生、管理员配置路由守卫实现页面级权限控制。状态管理对于中型应用使用PiniaVue3推荐管理全局状态如用户登录信息。API调用使用Axios封装一个统一的请求模块处理基础URL、请求头如携带Token、响应拦截处理通用错误等。组件化将重复使用的部分如医生卡片、咨询列表项抽成组件。与后端对接前端只关心后端API的URL、请求方法、参数和返回格式。所有业务逻辑判断应以后端为准。4.3 项目部署从本地到可访问毕业设计答辩时如果能展示一个在线运行的系统加分项很大。部署方式有很多选一个最适合你的。传统部署后端在IDEA中使用Maven打包package生成target/your-project-0.0.1-SNAPSHOT.jar。前端运行npm run build生成静态文件dist目录。将后端Jar包和前端dist目录上传到云服务器如腾讯云、阿里云的学生机。服务器安装JDK、MySQL、Nginx。运行后端nohup java -jar your-project.jar --spring.profiles.activeprod app.log 21 配置Nginx将域名或IP的80端口代理到后端如8080端口同时将前端dist目录作为静态资源服务。容器化部署更现代为后端项目编写Dockerfile基于OpenJDK镜像将Jar包打包成Docker镜像。前端项目也编写Dockerfile基于Nginx镜像将构建好的静态文件打包。使用docker-compose.yml定义服务后端容器、前端容器、MySQL容器一键启动。部署到支持Docker的云服务器或使用云厂商的容器服务。自动化部署进阶热词中提到了“jekins 部署 springboot 几种方式”。你可以搭建一个Jenkins实现代码推送后自动构建、测试、打包和部署。这对于毕业设计来说可能有点“杀鸡用牛刀”但如果你写在报告里能体现工程化思维。5. 毕业设计报告与答辩的实战建议代码跑通只是成功了一半把设计和思考清晰地表达出来同样重要。论文/报告结构绪论重点阐述乌兰察布市农村医疗的现状、痛点引出远程医疗咨询系统的必要性和意义。相关技术介绍SpringBoot、Vue.js、MySQL等选型的技术特点和优势不要罗列教科书定义要写你为什么选它。系统分析包括可行性分析、需求分析画出用例图、功能模块划分。系统设计这是核心。包括总体架构设计前后端分离示意图、数据库设计给出详细的ER图和各表结构、关键业务流程设计如咨询流程图、状态转换图。系统实现展示核心代码片段如Controller、Service、实体类并配合界面截图。代码不要贴太多要贴有代表性的、能说明你解决了关键问题的代码。系统测试描述测试环境设计测试用例功能测试、性能测试并给出测试结果。可以用表格形式呈现。总结与展望总结项目成果分析不足之处如未实现视频通话、支付模块等并提出未来可扩展的方向。答辩准备演示环境务必提前在答辩电脑上测试运行确保网络、数据库连接没问题。准备一个备份的演示视频。演示脚本准备一个5-10分钟的演示流程。从用户注册登录开始完整演示患者发起咨询、医生接诊、交流、结束咨询的核心流程。突出重点功能。回答问题提前思考老师可能问的问题为什么用SpringBoot用户密码怎么存储的答MD5/SHA256加盐哈希如何保证咨询记录的隐私数据库设计第三范式考虑了没有如果用户量大了哪里可能成为瓶颈答数据库连接、文件服务器带宽等你的系统有什么创新点答结合了具体地域需求设计了XX流程优化等PPT制作PPT是辅助不要大段文字。多用架构图、流程图、界面截图、数据表格。讲清楚“问题-方案-实现-效果”这条主线。最后记住毕业设计的核心是展示你运用技术解决一个实际问题的完整过程。从需求分析、技术选型、设计、编码、测试到部署每一步的思考比代码本身更重要。把这个项目当作一个微型产品来打磨你的收获会远超一个简单的分数。

相关新闻

暗河传html+css+js 5页

暗河传html+css+js 5页

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…

2026/10/19 5:20:04 阅读更多 →
AI 生成的代码进行质量管理

AI 生成的代码进行质量管理

可以将 AI 生成代码的质量管理,固化为一套贯穿交付流程的六道质量门禁: 需求清楚 -> 方案可控 -> 代码可审 -> 测试有效 -> 上线可观测 -> 问题可复盘原则是:AI 可以参与实现,但不能绕过需求、架构、评审、测试和发…

2026/10/18 9:43:07 阅读更多 →
从《黑暗视觉小说》看独立游戏开发:技术栈、叙事设计与Steam上架实践

从《黑暗视觉小说》看独立游戏开发:技术栈、叙事设计与Steam上架实践

这次我们来看一个在 Steam 平台备受关注的独立游戏项目——《黑暗视觉小说》。它并非一个技术工具或开源模型,而是一款融合了哥特美学、心理叙事与复杂情感关系的互动叙事作品。对于开发者、叙事设计师以及视觉小说爱好者而言,这类项目在 Steam 上的呈现…

2026/10/17 22:01:12 阅读更多 →

最新新闻

随机密码生成器Docker化部署实战:Python Flask与secrets模块

随机密码生成器Docker化部署实战:Python Flask与secrets模块

随机密码生成器这种东西,说实话实现起来并没什么高深算法,但真正到了要部署、要稳定跑起来、要让团队成员顺手用的时候,坑还挺多。最近我把一套随机密码生成器做了Docker化部署,作为内部小工具挂在服务器上,整个过程走…

2026/10/19 5:21:18 阅读更多 →
Spark音乐推荐系统设计与实现:标签画像+ALS混合推荐

Spark音乐推荐系统设计与实现:标签画像+ALS混合推荐

最近被问到最多的一个项目,就是代号 J001S 的“基于 Spark 的音乐推荐系统设计与实现”。这题目一看就是典型的毕业设计/课程设计,但说实话,能把这个题目做出彩的人并不多。核心玩法其实很清晰:歌曲标签加用户画像,再叠…

2026/10/19 5:21:18 阅读更多 →
具身智能的拜师礼:从数据采集到机器人学徒的产业叩问

具身智能的拜师礼:从数据采集到机器人学徒的产业叩问

活动还没开始,场外的自由讨论区就已经吵成了一片。有人围着一条机械臂反复看末端夹爪的开合精度,有人对着投影上的遥操作界面讨论延迟数字,还有人干脆蹲在角落里,拿着笔记本飞速记着什么。我当时站在人群里,听到最频繁…

2026/10/19 5:21:18 阅读更多 →
Kafka生产环境部署与配置避坑指南

Kafka生产环境部署与配置避坑指南

1. 这不是“装个软件”那么简单:Kafka部署背后的真实战场你点开一篇叫《Kafka 的安装、管理和配置》的教程,心里想的可能是:“哦,下载、解压、改几个配置、启动服务——十分钟搞定”。我试过无数次,也带过不少刚接触消…

2026/10/19 5:21:18 阅读更多 →
千元机生态之争:畅享90 Pro Max开售背后的鸿蒙下沉逻辑

千元机生态之争:畅享90 Pro Max开售背后的鸿蒙下沉逻辑

千元档手机市场这几年其实很微妙。过去大家拼的是“跑分高不高、像素大不大、电池够不够”,但最近风向明显变了,越来越多的新机开始把“系统生态”“跨端互联”“全家桶体验”当成核心卖点。畅享90 Pro Max正式开售的消息之所以引发关注,不只…

2026/10/19 5:21:18 阅读更多 →
矩阵分解推荐系统实战:从协同过滤到SGD梯度下降原理与实现

矩阵分解推荐系统实战:从协同过滤到SGD梯度下降原理与实现

如果把推荐系统相关的经典论文排个"被引用最多、被误读也最多"的榜单,这篇《Matrix Factorization Techniques for Recommender Systems》绝对能进前三。我第一次读它的时候刚被各种协同过滤公式折磨完,看完第一反应是:就这么简单&…

2026/10/19 5:20:17 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →