MapperFacade是Orika中最常用的接口之一,它的设计用于简化对象映射过程,能够高性能的将Java对象映射到其他Java对象中。
ma.glasnost.orika orika-core 1.5.4
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
- public class MapperFacadeUtil {
-
- private static MapperFacade mapper;
-
- static {
- //创建MapperFactory实例
- MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
- //注册自定义转换器,用于处理日期或时间类型
- ConverterFactory converterFactory = mapperFactory.getConverterFactory();
- converterFactory.registerConverter(new BeanConv.LocalDateTimeConverter());
- converterFactory.registerConverter(new BeanConv.LocalDateConverter());
- converterFactory.registerConverter(new BeanConv.LocalTimeConverter());
- //获取MapperFacade
- mapper=mapperFactory.getMapperFacade();
- }
- }
此处以转换分页数据为例,此处进行两次转换,先转换page中非泛型的属性,再完成page内部列表数据的转换。
- public static
Page toConversion(Page page,Class convertedClass) { - //如果page为空则直接返回
- if (EmptyUtil.isNullOrEmpty(page)){
- return null;
- }
- //获取page的字节码
- Class extends Page> pageClass = page.getClass();
- //转换page的外壳,创建一个模板类型为Page
的新实例,复制page的非泛型属性 - Page
converted = mapper.map(page, pageClass); - //处理page内部列表的数据转换,完成整体的数据类型转换
- converted.setRecords(mapper.mapAsList(page.getRecords(),convertedClass));
- return converted;
- }