1.开发规范-Restful
GET查询 DELETE删除 POST新增 PUT修改
2.Apifox 测试时发起POST、PUT、DELETE请求时使用
3.工程搭建 Result
pojo:存放实体类
Dept:部门类
统一响应结果实体类Result
4.查询部门-接口开发
4.1 Controller层代码 DeptController类
@RestController=@Controller + @RespondeBody 交给IOC容器+Json格式转换
@RequsetMapping(" ") :请求路径
@Autowired:DI依赖注入
4.2Service层代码
先在DeptService接口中写抽象该方法,在DeptServiceImpl中重写抽象方法
@Service:交给IOC容器
@Autowired:DI依赖注入
4.3Mapper层代码
@Mapper:交给IOC容器
4.4整体代码
5.指定请求方式 衍生注解 @GetMapping
@GetMapping("/depts") @PostMapping @DeleteMapping @PutMapping
底层封装了 @RequsetMapping(method =RsquestMethod.GET )
@RequsetMapping(vaule="/depts" method =RsquestMethod.GET )
6.数据封装
6.1开启驼峰命名开关
7.前后端联调测试 Nginx反向代理
原理:
8.删除部门-接口开发
8.1接收参数方式 @RequestParam(" ")
8.1.1原始方法
8.1.2注解 @RequestParam(" ")
8.1.3名相同 省略注解
8.1.4总结
8.2实现
9.新增部门-接口开发 @RequestBody 将json格式封装为对象
代码实现:
10.修改部门-查询回显 @PathVariable:绑定路径参数
路径参数的参数名和方法的形参名称相同,@PathVariable的value值可省略
实现:
11.修改部门-修改数据
12.抽取公共路径@RequestMapping("/depts") @GetMapping("/{id}")
13.日志技术-Logback入门程序
14.日志技术-Logback配置文件详解
控制台输出格式
文件格式输出
15.日志级别
16.日志注解 @Slf4j
更改,{}:占位符,需要传递参数
17.员工管理-新增员工
17.1准备工作
分页结果封装类 PageResult<T>
17.2分页查询-原理分析
17.3分页查询-原始方式代码实现
@RequsetParam(defaultValue = "1"):为参数设置默认值
代码实现:
17.4分页查询-PageHelper分页插件 PageHelper.startPage
PageHelper.startPage(page,pageSize);
结果会封装在Page中
17.5PageHelper实现机制
语句改造
注意事项:
17.6条件分页查询-基本实现
#{ }在' '中不能表示占位符 解决方法:concat('%',#{name},'%')
17.7条件分页查询-程序优化
17.7.1参数优化
EmpService实现类
Mapper接口
17.7.2动态SQL 标签<if test="name!=null">查询条件</if> <where>所有的查询条件<where>:自动去除多余的and
17.8新增员工-保存员工基本信息
17.9新增员工-批量保存员工工作经历 <foreach> </foreach> @Options(useGeneratedKeys = ture,keyProperty = "id")主键返回
主键返回的作用:插入工作经历时主键会默认分配,利用@Options注解能获取当前主键,确保工作经历与用户的主键相同
代码实现:
EmpServiceImpl
EmpMapper.java
EmpExprMapper.java
XML
17.10事务管理-介绍与操作
17.11 事务管理-Spring事务管理-介绍 @Transactional:事务管理
设置事物的日志级别
搜索控制台中关键信息插件
17.12 事务管理-Spring事务管理-进阶 rollbackFor
17.12.1 rollbackFor : 何种异常时回滚回滚,Exception.class:所有异常
17.12.2 propagation = REQUIRES_NEW :开启新事务
17.13文件上传
17.13.1文件上传-介绍 MultipartFile file,enctType="multipart/form-data
17.13.2文件上传-本地存储
文件名转换成Uuid随机生成的字符串+后缀名
spring默认文件上传大小1M,改变默认文件上传大小:
17.13.3文件上传-阿里云OSS-准备工作
17.13.4文件上传-阿里云OSS-入门程序
17.13.5文件上传-阿里云OSS-案例集成
点击文件上传后,请求/upload 文件上传的Controller,返回图片的url地址
引入工具类,并且交给IOC容器管理:
利用工具类上传图像到阿里云,并接收返回来的图像url地址
17.13.6文件上传-阿里云-程序优化 @Value("${key}") @ConfigurationProperties:批量注入
将配置项的值封装到实体类中
18.员工管理-删除员工
18.1 请求参数接收 传递的查询参数封装到像List集合复杂类型中,要加@RequestParam注解,不可省略
18.2逻辑实现
19.员工管理-修改员工 resultMap:手动封装
19.1查询回显 id:id属性 result:普通属性 collection:集合属性 column:字段名 property:属性名
转成
19.2修改员工-修改数据 @RequestBody:json报文封装成对象
19.3修改员工-程序优化-动态更新 set标签:自动去除多余的,
20.全局异常处理器 @RestControllerAdvice @ExceptionHandler
21.员工信息统计
21.1职位统计-分析 柱状图
21.2职位统计-实现
list.stream().map():把map类型转成得到的数据的类型