dozer与spring集成

@Bean(name = "org.dozer.Mapper")
	public DozerBeanMapper dozerBean() {
		List<String> mappingFiles = Collections.singletonList("dozer-mapping/saverequest_form-mapping.xml");
		DozerBeanMapper dozerBean = new DozerBeanMapper();
        Map<String, CustomConverter> converters = new HashMap<>();
		converters.put("arrayListToStrConverter", new ArrayListToStrConverter());
		dozerBean.setMappingFiles(mappingFiles);
		return dozerBean;
	}
@Service
public class DozerMappingHandler {

	@Autowired
	private DozerBeanMapper dozerBeanMapper;

	public SaveFormRequest convertSaveFormToSignerFormMgmtEntity(SignerFormMgmt signerFormMgmt) {
		SaveFormRequest saveFormRequest = dozerBeanMapper.map(signerFormMgmt, SaveFormRequest.class, "saveFormMapping");
		saveFormRequest.setCaseType(SignerConstants.SIGNER_CASE_TYPE);
		saveFormRequest.setActionType(ActionType.SAVE);
		return saveFormRequest;
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://dozer.sourceforge.net http://dozer.sourceforge.net/schema/beanmapping.xsd">

	<mapping map-id="saveFormMapping">
		<class-a>com.citi.api.signer.model.entity.formmgmt.SignerFormMgmt</class-a>
		<class-b>com.citi.api.signer.model.request.SaveFormRequest</class-b>
		<field>
			<a>caseId</a>
			<b>caseId</b>
		</field>
		<field>
			<a>id</a>
			<b>formId</b>
		</field>
	</mapping>
</mappings>
public class ArrayListToStrConverter implements CustomConverter {
	@Override
	public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass, Class<?> sourceClass) {
		if (sourceFieldValue == null) {
			return existingDestinationFieldValue;
		}
		if (existingDestinationFieldValue == null) {
			existingDestinationFieldValue = "";
		}
		try {
			if (existingDestinationFieldValue instanceof String && sourceFieldValue instanceof List) {
				existingDestinationFieldValue = StringUtils.join((List<?>) sourceFieldValue, ",");
			}
		} catch (Exception e) {
			throw new MappingException("Exception while converting ArrayList to String", e);
		}
		return existingDestinationFieldValue;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值