在业务中,我们接受前端传来的对象VO后,为了方便业务,需要把VO转换成BO或者数据库映射的实体类,这时候就需要借助Dozer来直接转换完成。
1.pom引入:
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.4.0</version>
</dependency>
2.注入工具类DozerBeanMapper 到上下文中
@Configuration
public class DozerBeanMapperConfigure {
@Bean
public DozerBeanMapper mapper() {
DozerBeanMapper mapper = new DozerBeanMapper();
return mapper;
}
}
3.注入使用(在哪里使用就在哪个类里面注入)
@Autowired
protected Mapper dozerMapper;
4.对象和对象的转换用法:
/**************** user -> userVO**************/
UserVO userVO = dozerMapper.map(user, UserVO.class);
5.List转List工具类
public class DozerUtils {
static DozerBeanMapper dozerBeanMapper = new DozerBeanMapper();
public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass){
List destinationList = Lists.newArrayList();
for (Iterator i$ = sourceList.iterator(); i$.hasNext();){
Object sourceObject = i$.next();
Object destinationObject = dozerBeanMapper.map(sourceObject, destinationClass);
destinationList.add(destinationObject);
}
return destinationList;
}
}