Java:orika-mapper对象深复制工具

Orika是一个Java Bean映射框架,它递归地将数据从一个对象复制到另一个对象。它在开发多层应用程序时非常有用。

为什么要使用对象映射?

Orika可以用来简化一个对象层和另一个对象层之间的映射过程,避免各种手动编写创建对象和复制属性的方法。

Orika目标是构建一个全面、高效和健壮的Java bean映射解决方案。Orika专注于尽可能自动化,同时在需要时通过配置和扩展提供定制。

Orika特点

1)可以映射复杂和深层结构的对象

2)通过将嵌套属性映射到顶级属性来“展平”或“展开”对象,反之亦然

3)动态创建映射程序,并应用自定义设置来控制部分或全部映射

4)创建转换器以完全控制对象图中任意位置特定对象集的映射(按类型,甚至按特定属性名)

5)处理代理或增强对象(如Hibernate或各种模拟框架的代理或增强对象)

6)一个配置中应用双向映射

7)映射到目标抽象类或接口的适当具体类的实例

8)将POJO属性映射到列表、数组

 

例子

implementation 'ma.glasnost.orika:orika-core:1.5.4'

package com.vip.zhibin02.demo.orika;

import java.util.Arrays;
import java.util.List;

import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.DefaultMapperFactory;

public class OrikaTest {
	private MapperFactory factory;

	private static final User USER1 = new User(1L, "user1", "user1-pass");
	private static final User USER2 = new User(2L, "user2", "user2-pass");
	private static final Logger logger = LoggerFactory.getLogger(OrikaTest.class);

	@Before
	public void before() {
		DefaultMapperFactory.Builder factoryBuilder = new DefaultMapperFactory.Builder();
		factory = factoryBuilder.build();
	}

	@Test
	public void beanTest() {
		logger.info("user1 vo: {}", factory.getMapperFacade().map(USER1, UserVO.class));
	}

	@Test
	public void beanListTest() {
		List userList = Arrays.asList(USER1, USER2);
		List userVoList = factory.getMapperFacade().mapAsList(userList, UserVO.class);
		for (UserVO vo : userVoList) {
			logger.info("user vo: {}", vo);
		}
	}
}

项目地址:https://github.com/orika-mapper/orika

你可能感兴趣的:(Java)