1、org.springframework.beans.BeanUtils#copyProperties
public User addUser(@ModelAttribute inDto dto) {
User user= new User();
BeanUtils.copyProperties(dto, user);
return userService.addUser(user);
}
注意:需要copy的属性名称、大小写、类型要一致
2、com.github.dozermapper.core.Mapper#map
private Mapper mapper;
public User addUser(@ModelAttribute inDto dto) {
User user= mapper.map(dto, User.class);
return userService.addUser(user);
}
类型不一致时,如int和String类型可互相转化。
但是!mapper.map不支持枚举值复制!
其他两种方法支持枚举值
3、jp.co.sng.activecity.acdms.domain.utils.CopyUtils#copyProperties
public User addUser(@ModelAttribute inDto dto) {
User user= new User();
CopyUtils.copyProperties(dto, user);
return userService.addUser(user);
}
注意:
前提:如果dtoFrom和dtoTo本身都有值,dtoFrom中的A属性为null,dtoTo中A属性不为null(假设值为1)。
使用BeanUtils.copyProperties(dtoFrom, dtoTo)后,A为null。
使用mapper.map(dtoFrom, dtoTo)后,A为1。
使用CopyUtils.copyProperties(dtoFrom, dtoTo)后,A为1。
自己构建copy方法:
若只是简单的复制对象,这篇文章的实践速度比dozer快
https://blog.csdn.net/zla85/article/details/48317831