【电商项目】新手CRUD踩坑记录与问题复盘——新增
·
写这篇文章主要是记录自己做新增接口时踩的大蠢坑,而且本人对异常报错阅读能力偏弱,加上英文底子一般,借着实操复盘巩固排错思路。
一、Service 层 Mapper Bean 注入失败
首先在我项目启动时就翻车了,当时犯了一个十分愚蠢的问题:

描述意思是:AdminServiceImpl这个类里的adminMapper字段,需要一个类型为AdminMapper的Bean对象,但是Spring容器找不到这个对象。
Spring容器找不到对象,最有可能因为这几种:
- Mapper、Service 层缺少
@Mapper、@Service这类 Spring 托管注解,类没有交给 Spring 管理; - 当前类所在包路径,不在 SpringBoot 启动类的组件扫描范围之内;
- Maven 依赖缺失、版本冲突导致类加载异常。
小编翻车原因是第二中(内心大喊我是大蠢蛋):AdminServiceImpl按理来说归属shopping_admin_service管理员微服务模块,结果没注意看写到了shopping_goods_service商品服务模块里, 能扫到才怪。
goods商品服务的MapperScan只扫描goods.mapper,所以AdminMapper不会被注册为SpringBean.
二、接口调试报「缺少请求参数」异常
测试的时候又遇见了新报错呢!

MissingServletRequestParameterException:缺少请求参数异常
意思是:接口方法里声明了必须传入名为admin的参数,类型是Admin实体,但前端请求里没有携带这个参数。
可能原因:
- 请求方式不匹配。有两个长得很像的大哥:
@RequestParam适配 GET 拼接参数、表单 Form 提交;@RequestBody专门承接 POST 方式的 JSON 请求体,二者不能混用; - 前后端参数 key 命名不一致,注解绑定参数名和前端传递字段名对不上。
排查后发现是注解使用错误:这个接口是 POST JSON 请求,应该用@RequestBody,我误写成RequestParam了。
顺带踩了个测试工具的小失误:在 Postman调试接口时,没有勾选 JSON 请求体格式,请求格式错误同样会造成参数无法正常解析。

三、总结:
我是大蠢蛋啊啊啊啊! ! !
更多推荐


所有评论(0)