记录所学新知识小点
2025/7/5大约 2 分钟
记录所学新知识小点
封装方法
tip1
- 将DTO中的属性值赋给Entity可以用SpringBoot中封装的Bean工具类的方法,BeanUtils.copyProperties(XXDTO,XX)。
tip2
- 之前学SpringBoot项目,用的加密方法是MD5,用的是一个自定义的MD5加密工具类,实际上SpringBoot给我们封装了加密工具类,叫做DigestUtils,里面只有md5加密方法(传参是 字符串的getBytes),想要多种加密方法,可以使用apach的DigestUtils。
功能/类 | Spring 自带 (org.springframework.util.DigestUtils ) | Apache Commons (org.apache.commons.codec.digest.DigestUtils ) |
---|---|---|
是否默认包含 | Spring Boot 默认包含 | 需要添加依赖 |
支持算法 | 仅支持 MD5 | 支持多种:MD2 / MD5 / SHA-1 / SHA-256 / SHA-384 / SHA-512 |
推荐场景 | 适合快速做 MD5 简单哈希 | 适用于需要更强加密或与其他系统对接的复杂加密需求 |
添加依赖:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version> <!-- 或最新版本 -->
</dependency>
tip3
- 分页查询,不使用mybatis的话,要自己计算所拿的数据(第几页,几条),可以使用pageHelper来快速实现,基于ThreadLocal实现
编码技巧
tip1
- 实际代码过程中,尽量不要用1,0等数字魔法值,这样属于硬编码,不易于维护,使用属性常量(设一个常量类)更好
tip2
- 建议落库的时候还是在编码的时候用LocalTime来set时间,一定要注意时间类的一些问题,时差等等
tip3
- 格式化一些数据的时候建议扩展SpringMVC的消息转换器。继承WebMvcConfigurationSupport,重写extendMessageConvert方法
tip4
- 路径参数{}要用@PathVariable注解修饰,json请求参数,要用@RequestBody,Query参数只要能对应就行
tip5
- 构建对象除了new之后set值,还可以在对象类上加上@Builder注解,使用build构造对象
tip6
- 公共字段:比如创建时间、创建人,更改时间、更改人等,每次创建更改操作都要set一次,代码冗余。可以通过切面来处理--AOP,统一拦截mapper层,为这些公共字段赋值。
实现步骤:
定义AutoFill注解,确定target,retention,使用枚举类:有UPDATE和INSERTE;定义切面,切面里面定义切入点,通知等等
测试技巧
tip1
- 可以使用Swagger、apifox、postman等等,都差不多,注意请求头的设置