Orika是什么
Orika是一个简单、快速的JavaBean拷贝框架,它能够递归地将数据从一个JavaBean复制到另一个JavaBean,这在多层应用开发中是非常有用的。
为什么要使用Orika
Orika用于简化多层之间的对象映射,避免苦苦挣扎于手工编码和基于反射的映射。
Orika致力于提供一个全面、有效、强大的Java Bean映射解决方案。Orika关注尽可能地自动化,同时根据需要提供配置和扩展实现定制。
Orika为开发者提供了如下功能:
1.映射复杂的、深层次结构性对象。
2.通过将嵌套属性映射到顶级属性,“压平”或“展开”对象,反之亦然。
3.自动创建映射,并且在部分或所有映射上自定义。
4.创建转换器,以完全控制对象图中的任何特定对象集合的映射——按类型,甚至是通过特定的属性名。
5.处理代理或增强对象(如Hibernate或各种模拟框架)
6.用一个配置应用双向映射。
7.为一个目标抽象类或接口映射到具体的实现类。
8.映射POJO属性到Lists, Arrays, and Maps。
如何使用Orika
Orika使用字节代码生成来创建具有最小开销的快速映射器。
官网指引:http://orika-mapper.github.io/orika-docs/intro.html
示例
1.Step1:添加Gradle(或Maven)依赖
compile group: 'ma.glasnost.orika', name: 'orika-core', version: '1.5.1'
2.Step2:创建2个用于测试的Java Bean
User.java
public class User {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserA.java
public class UserA {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "UserA{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
3.Step3:利用Orika映射两个Object
public class TestGradle {
public static void main(String[] args) {
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
mapperFactory.classMap(User.class, UserA.class)
.field("id", "id")
.field("name", "name")
.byDefault()
.register();
User user = new User();
user.setId(123L);
user.setName("小明");
MapperFacade mapper = mapperFactory.getMapperFacade();
UserA userA = mapper.map(user, UserA.class);
System.out.println(userA.toString());
}
}
运行结果
{"id":123,"name":"小明"}
可以看到通过简单几行代码,就把数据从一个Object复制到了另一个Object,示例比较简单,Orika还支持更为复杂的映射(复制),更多功能通过实践来解锁吧。
网友评论