第三周总结
本周工作内容
SpringBoot 全局返回类型与错误处理
定义了统一的返回类型 Result,规范了接口返回格式(包含状态码、消息和数据)。
实现了全局异常处理 GlobalExceptionHandler,捕获系统异常和自定义异常。
创建了 CustomException 类,支持手动抛出业务异常并返回指定错误信息。
Android 连接 SpringBoot
使用 Kotlin 实现了 Android 客户端与 SpringBoot 后端的网络通信。
通过 Retrofit 发起 HTTP 请求,完成用户数据的提交(注册功能)。
定义了数据实体类 User 和网络请求服务 UserService。
学到的知识
SpringBoot 统一响应与异常处理
统一返回格式的意义:标准化接口响应,便于前端处理。
@ControllerAdvice + @ExceptionHandler 的全局异常处理机制。
自定义异常的使用场景和实现方式。
Android 网络请求
Retrofit 的基本配置和使用(BASE_URL、GsonConverterFactory)。
异步网络请求的发起和响应处理(enqueue + Callback)。
Kotlin 数据类(data class)与 JSON 的自动转换。
前后端联调
接口设计规范(如 RESTful 风格的 POST /user/add)。
通过日志(Log.e)调试网络请求和响应数据。
遇到的问题及解决方法
问题:Android 网络请求失败(onFailure 被触发)。
原因:后端未启动或 IP 地址配置错误。
解决:检查 SpringBoot 服务是否运行,并确保 Android 的 BASE_URL 与后端地址一致。
问题:Retrofit 解析 JSON 时崩溃。
原因:后端返回的数据格式与 Android 实体类不匹配。
解决:使用 GsonBuilder().setLenient() 放宽解析规则,并确保字段名称一致。
问题:全局异常处理未生效。
原因:@ControllerAdvice 的包扫描路径未覆盖控制器类。
解决:明确指定包路径(如 @ControllerAdvice("com.demo.controller"))。
代码统计
SpringBoot 相关代码
Result 类:约 40 行(含成功/错误静态方法)。
GlobalExceptionHandler:约 20 行。
耗时:3 小时(包括测试和调试)。
Android 网络请求代码
实体类 User:10 行。
Retrofit 配置(ServiceCreater):15 行。
服务接口 UserService:5 行。
页面逻辑 MainActivity:30 行。
总代码量:约 60 行。
耗时:5 小时(含联调)。
总结
本周重点实现了前后端协作的关键技术:
后端:通过统一响应和全局异常处理提升接口规范性。
前端:掌握了 Android 网络请求的基本流程,成功连接 SpringBoot 后端。
联调经验:学会了通过日志排查网络问题,理解数据格式一致性的重要性。
下一步计划:
扩展更多业务接口(如登录、查询)。
学习 Android 的本地数据存储(如 Room)。
研究 SpringBoot 的权限控制(如 JWT)。

浙公网安备 33010602011771号