BeanUtils.copyProperties
发表于
更新于
作用
用于将一个 Java Bean(对象)的属性复制到另一个 Java Bean 中使用场景
⭐属性复制:BeanUtil.copyProperties可以将一个对象中的属性值复制到另一个对象中,类似于Spring的BeanUtils和Apache Commons的BeanUtils。⭐忽略空值:Hutool的BeanUtil提供了可以忽略空值属性的复制选项,这样就不会覆盖目标对象中的非空属性。
⭐支持不同类型的对象:源对象和目标对象可以是不同的类,只要它们有相同的属性名和兼容的类型。
⭐支持嵌套属性复制:如果属性本身也是一个Java Bean,BeanUtil.copyProperties可以递归地复制这些嵌套的属性。
构造器注入
发表于
更新于
Lombok依赖
@RequiredArgsConstructor注解
private final Xxx xxx;
开发查询用户信息功能
发表于
更新于
用户表设计
1 | CREATE TABLE `t_user` ( |
数据库表设计
发表于
这里记录自己设计数据库表时的所思所想,先开着坑🕳
BeanUtil.toBean
发表于
是什么
Hutool的BeanUtil.toBean方法用于将一个Map对象转换为一个指定类型的Java对象(Bean)。它会根据Map中的键值对,将对应的值赋给Java对象中的属性。BeanUtil.toBean
主要功能
类型转换:BeanUtil.toBean会尝试进行基本的类型转换。例如,如果Map中的值是String类型,而Bean中的属性是Integer类型,它会尝试将String转换为Integer。属性映射:Map中的键与Bean中的属性名进行匹配,将对应的值赋值给Bean的属性。
使用场景
将请求参数转换为对象:在Web开发中,通常会从前端接收到一个包含多个参数的Map,通过toBean可以直接将这些参数转换为一个Java对象,方便后续操作。动态生成对象:在某些动态场景下,数据可能以Map的形式存储,但业务逻辑需要操作Java对象,此时可以使用toBean方法将Map转换为对应的Java对象。
在代码中使用
1 | BeanUtil.toBean(userService.getUserByUsername(username), UserActualRespDTO.class) |
用户敏感信息接口返回脱敏
发表于
更新于
使用场景
对用户的敏感信息(比如身份证、电话号码等)做隐藏化返回处理手机号序列化器
1️⃣在src/main/java/.../common/serialize路径下新建手机号序列化器类⭐用到的是Hutool工具包里的DesensitizedUtil工具类的mobilePhone方法来实现手机号的脱敏展示
⤵️Hutool脱敏工具类
1 | import cn.hutool.core.util.DesensitizedUtil; |
2️⃣在对应的DTO对象字段上面加上@JsonSerialize注解
这里以src/main/java/…/dto/resp路径下的UserRespDTO为例
1 | /** |
新需求:必须展示无脱敏的信息
解决思路:新建一个无脱敏展示的接口
具体做法:复制一份相同的脱敏接口和返回的DTO对象,将DTO对象相应字段的@JsonSerialize注解删掉即可
Hutool还提供了BeanUtil.toBean 方法,用于map转bean
全局统一返回实体
发表于
全局异常码(基于阿里规约)
发表于
更新于