使用其他bean属性的xml配置设置Spring bean属性

时间:2018-03-27 06:11:56

标签: java xml spring spring-bean spring-ioc

我有两个bean类,如下面的

package com.abc;

public class Employee{

private String id;
private String name;
//setters & getters
}

package com.cda;

public class EmployeeDTO{

private String id;
private String name;
//setters & getters
}

我想使用spring xml配置将属性字段从Employee设置为EmployeeDTO。数据来自其他来源的员工对象。

请你帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

使用apache或spring框架中的BeanUtils代替。注意这两种方式的论证定位。他们正好相反:

org.apache.commons.beanutils.BeanUtils.copyProperties(Object dest, Object orig)

OR

org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)

答案 1 :(得分:0)

这实际上不是春天为你做的任务。 Spring更多的是将所有依赖对象连接在一起,它们在运行时一起工作。您需要的是像mapstructenter link description here这样的映射器。

答案 2 :(得分:0)

让我们考虑一个场景 Employee从数据源获取数据,现在您想将其映射到EmployeeDto 在这种情况下:

  1. 您可以在EmployeeDto中添加构造函数,该构造函数将Employee作为参数并映射字段
  2. 您可以使用ModelMapper这样的简单行:EmployeeDto employeeDto = modelMapper.map(employee, EmployeeDto.class);可以使用
  3. 使用BeanUtils import org.apache.commons.beanutils.BeanUtils; EmployeeDto newObject = new EmployeeDto(); BeanUtils.copyProperties(newObject, oldObject); reference
  4. Jackson ObjectMapper方法使用convertValue() :(因性能问题而不推荐)
  5. ObjectMapper mapper = new ObjectMapper(); Employee employee = ...; EmployeeDto employeeDto = mapper.convertValue(employee, EmployeeDto.class);