-
背景
在SpringBoot项目中,我们通常会使用BeanUtils.copyProperties
来实现对象属性拷贝。但是BeanUtils.copyProperties
的缺点很明显,如果对象中的字段发生了变化,就会导致拷贝失败,就会在项目中留下潜在的bug。 -
MapStruct介绍
-
使用方法
- Maven导入
<dependencies> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.3.0.Final</version> </dependency> </dependencies>
- 定义Entity和VO
@Data public class User { private String username; private String password; private Integer age; }
@Data public class UserVO { private String username1; private String password1; }
- 定义mapper接口
@Mapper(componentModel = "spring") public interface UserToUserVOMapper{ @Mappings({ @Mapping(target = "username",source = "username1") @Mapping(target = "password",source = "password1") }) public UserVO userVO() }
- 测试
@Autowired private UserToUserVOMapper userToUserVOMapper; public void test() { UserVO vo = new UserVO(); vo.setUserName("beck"); vo.setPassWord("1111"); User user = userToUserVOMapper.to(vo);// 通过to方法得到 User UserVO vo1 = userToUserVOMapper.form(user);// 通过from方法得到UserVO,既反转to方法。 }
- 个人理解
其实@Mapping
这个注解的意思就是target.setField(source.getField())
在微服务中整合MapStruct
最新推荐文章于 2024-06-10 13:31:24 发布