苍穹外卖Day6
文章目录
- 前言
- ``
- 一、碰见问题
- 1.配置动态SQL后项目不能正常运行
- 二、根据ID查询员工功能代码实现
- 1.**类上**注解的作用
- 2.**方法**内的注解
- 3.service层为什么要使用接口?
- 4.Bean的概念
- 总结
前言
``
一、碰见问题
1.配置动态SQL后项目不能正常运行
报错日志:
2025-07-24 11:01:28.589 ERROR 21980 — [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.sky.mapper.EmployeeMapper.Employee] with root cause
咨询AI后:这个错误是MyBatis 框架在处理参数映射时出现的问题,核心原因是:MyBatis 找不到名为com.sky.mapper.EmployeeMapper.Employee的参数映射(ParameterMap)配置。知道了是配置XML时寻找Employee的路径错误,改正后运行成功
二、根据ID查询员工功能代码实现
1.类上注解的作用
@RestController:组合注解,相当于@Controller+@ResponseBody
@Controller,将类标注为控制器,标注之后Spring才能将此类与Http请求关联
@ResponseBody:将方法的返回值按照前端所需的格式返回。若没有Spring会默认将返回值当作“视图名称”,去寻找对应的页面。
@RequestMapping(“/employee”):指定类的基础请求路径。该类的所有方法的请求路径都会自动拼接上/employee。
2.方法内的注解
@Autowired:自动注入依赖对象(一个类运行时需要其他类的对象)
@PostMapping(“/status/{status}”}:声明这个方法专门处理POST类型的请求,请求路径必须是/employee/status/{status}。POST是HTTP协议中的一种请求方式,主要用于用户向服务器提交数据
举例子:HTTP发出POST请求→服务器(Tomcat)接受→调用EmployeeController→调用EmployeeService→EmployeeService去数据库更新员工状态→数据库保存状态→服务器把“更新成功”的结果返回给前端。
3.service层为什么要使用接口?
1.接口可以解耦
2.接口里有多个实现类,可以通过依赖自动注入切换不同的实现类。
3.代码侵入性低,当需求变化时,对原有代码不用进行大量,直接的修改,降低原有代码的结构被破坏的风险,后续维护难度降低。
4.若不使用接口,更改需求时→导致controller层依赖注入要更改,方法名可能更改
4.Bean的概念
Spring容器管理的对象(被实例化、组装、管理的对象),可以是任何Java对象(只要能被实例化)
总结
如果我的内容对你有帮助,请点赞👍、关注❤、收藏⭐️。创作不易,大家的支持就是我坚持下去的动力!