java~modelMapper需要注意的几点

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述java~modelMapper需要注意的几点相关的知识,希望能为你提供帮助。
对于modelMapper来说,主要实现的是对象与对象的赋值,在这微服务里的数据传输对象中用的比较多,DTO这个对象是从业务模型抽象出来的,满足某一种业务,它与数据持久化模型没有关系,而如果我们把数据表模型取出后,以DTO返回给使用端时,就需要一种赋值机制,这就是modelMapper需要做的事。
在目前开发过程中,由于使用了lombok插件,使得我们减少了很多重复的代码,它以注解的形式体现在代码上,即@getter表示对外公司读方法,@setter对外公开写方法,而后者在设计时一般不对外公开,为对象的赋值一般通过@Builder来实现,但这对于modelMapper是一件坏事 ,它必须要求你公开@setter注解,才可以为你赋值,这也是可以想像的,modelMapper的机制应该就是说取所有字段 ,然后使用自己的setter方法为它赋值。
注意地址:

  1. 必须公开@setter注解
  2. DTO对象不能继承原来的模型,应该新建一个单纯的实体,因为注解是可以从父类集成下来的
@Builder(toBuilder = true) @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class UserDto { private String name; }

下面是数据模型
@Builder(toBuilder = true) @Getter @NoArgsConstructor @AllArgsConstructor public class UserInfo { private String name; private String email; @MinMoney(message = "金额不能小于0.") @MaxMoney(value = https://www.songbingjia.com/android/10, message ="金额不能大于10.") private Money price; }

下面是使用方法,同时可以使用BeanUtils类的方法也可以实现。
modelMapper方法
ModelMapper modelMapper = new ModelMapper(); userDto = modelMapper.map(userinfo, UserDto.class);

BeanUtils方法
UserInfo userinfo= UserInfo.builder().name("zzl").build(); UserDto userDto=new UserDto(); BeanUtils.copyProperties(userinfo,userDto);

【java~modelMapper需要注意的几点】感谢阅读!

    推荐阅读