我已经用Java 8和dozer 5.5完成了它。你不需要任何XML文件进行映射,可以在Java中完成。
对于列表,您不需要任何额外的映射,您只需要将列表作为映射中的一个字段即可。
您需要将列表作为映射中的一个字段添加进去。
请参考下面的示例bean配置。
Spring配置类
@Configuration
public class Config {
@Bean
public DozerBeanMapper dozerBeanMapper() throws Exception {
DozerBeanMapper mapper = new DozerBeanMapper();
mapper.addMapping( new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(Answer.class, AnswerDTO.class);
mapping(QuestionAndAnswer.class, QuestionAndAnswerDTO.class).fields("answers", "answers");
}
});
return mapper;
}
}
//Answer类和AnswerDTO类具有相同的属性
public class AnswerDTO {
public AnswerDTO() {
super();
}
protected int id;
protected String value;
}
//QuestionAndAnswerDTO类有一个答案列表
public class QuestionAndAnswerDTO {
protected String question;
protected List<AnswerDTO> answers;
}
//QuestionAndAnswer类具有与QuestionAndAnswerDTO相似的字段
//然后在您的代码中使用映射器,进行自动装配
@Autowired
private DozerBeanMapper dozerBeanMapper;
// in your method
QuestionAndAnswerDTO questionAndAnswerDTO =
dozerBeanMapper.map(questionAndAnswer, QuestionAndAnswerDTO.class);
希望这能帮助有人更好地遵循Java方法,而非XML。