依赖
<dependency>
<groupId>ma.glasnost.orika</groupId>
<artifactId>orika-core</artifactId>
<version>1.5.4</version>
</dependency>
配置
package com.pacvue.base.config;
import ma.glasnost.orika.Converter;
import ma.glasnost.orika.Mapper;
import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.ConfigurableMapper;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@Configuration
public class OrikaMapperServiceConfig {
@Bean
@ConditionalOnMissingBean
public MapperFacade getMapperFacade(List<Mapper> mappers, List<Converter> converters) {
return new ConfigurableMapper() {
@Override
protected void configure(MapperFactory factory) {
super.configure(factory);
if (mappers != null) {
mappers.forEach(mapper -> factory.classMap(mapper.getAType(), mapper.getBType()).byDefault().customize(mapper).register());
}
if (converters != null) {
converters.forEach(converter -> factory.getConverterFactory().registerConverter(converter));
}
}
};
}
}
测试
List<CampaignContentRel> entityList = mapperFacade.mapAsList(requestBody.getContentList(), CampaignContentRel.class);