我已经使用 Java 8 和 dozer 5.5 完成了它。您不需要任何 XML 文件进行映射。你可以用Java来做。
您不需要任何额外的列表映射,唯一需要的是
您需要将列表添加为映射中的字段
. 请参阅下面的示例 bean 配置。
弹簧配置类
@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;
//setters and getters
}
//QuestionAndAnswerDTO 类有一个 Answers 列表
public class QuestionAndAnswerDTO {
protected String question;
protected List<AnswerDTO> answers;
//setters and getters
}
//让 QuestionAndAnswer 类具有与 QuestionAndAnswerDTO 相似的字段
//然后在你的代码中使用映射器,自动装配它
@Autowired
private DozerBeanMapper dozerBeanMapper;
// in your method
QuestionAndAnswerDTO questionAndAnswerDTO =
dozerBeanMapper.map(questionAndAnswer, QuestionAndAnswerDTO.class);
希望这将有助于有人遵循 Java 方法而不是 XML。