Код: Выделить всё
import ma.glasnost.orika.Converter;
import ma.glasnost.orika.Mapper;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.ConfigurableMapper;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class OrikaMapper extends ConfigurableMapper implements ApplicationContextAware {
private MapperFactory factory;
@Override
protected void configureFactoryBuilder(final DefaultMapperFactory.Builder factoryBuilder) {
}
@Override
protected void configure(final MapperFactory factory) {
this.factory = factory;
}
@Override
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {
addAllSpringBeans(applicationContext);
}
private void addAllSpringBeans(final ApplicationContext applicationContext) {
final Map converters = applicationContext.getBeansOfType(Converter.class);
for (final Converter converter : converters.values()) {
addConverter(converter);
}
final Map mappers = applicationContext.getBeansOfType(Mapper.class);
for (final Mapper mapper : mappers.values()) {
addMapper(mapper);
}
}
public void addConverter(final Converter converter) {
factory.getConverterFactory().registerConverter(converter);
}
public void addMapper(final Mapper mapper) {
factory.classMap(mapper.getAType(), mapper.getBType())
.byDefault()
.customize((Mapper) mapper)
.register();
}
}
Код: Выделить всё
ma.glasnost.orika
orika-core
1.5.4
Подробнее здесь: https://stackoverflow.com/questions/788 ... initialize