Orika是一个简单、快速的JavaBean拷贝框架,它能够递归地将数据从一个JavaBean复制到另一个JavaBean,这在多层应用开发中是非常有用的
Orika为开发者提供了如下功能:
1.映射复杂的、深层次结构性对象。
2.通过将嵌套属性映射到顶级属性,“压平”或“展开”对象,反之亦然。
3.自动创建映射,并且在部分或所有映射上自定义。
4.创建转换器,以完全控制对象图中的任何特定对象集合的映射——按类型,甚至是通过特定的属性名。
5.处理代理或增强对象(如Hibernate或各种模拟框架)
6.用一个配置应用双向映射。
7.为一个目标抽象类或接口映射到具体的实现类。
8.映射POJO属性到Lists, Arrays, and Maps。
pom.xml添加相关的依赖,并进行加载
ma.glasnost.orika
orika-core
1.5.1
org.projectlombok
lombok
首先创建两个对象
UserA:
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
public class UserA {
@Id
private int id;
private String name ;
private int age;
@Override
public String toString() {
return "UserA{id="+id+",name="+name+",age="+age+"}";
}
}
UserB:
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
public class UserB {
@Id
private int uid;
private String username;
private int age;
}
现在进行写测试类
import com.superl.springboot.springbootdemo.orika.UserA;
import com.superl.springboot.springbootdemo.orika.UserB;
import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import org.junit.Test;
public class OrikaTest {@Test
public void oriaTest(){
/**
* 1.创建mapperFactory
* 2.做对象的映射
*/
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
mapperFactory.classMap(UserB.class, UserA.class)
.field("uid","id")
.field("username","name")
.byDefault()
.register();
//写一个测试对象
UserB user = new UserB();
user.setUid(1);
user.setUsername("superl");
user.setAge(12);
//将测试对象userB-->UserA进行转换
MapperFacade mapper = mapperFactory.getMapperFacade();
//.map()进行类型转换
UserA userA = mapper.map(user,UserA.class);
System.out.print(userA.toString());
}
}
测试结果:
UserA{id=1,name=superl,age=12}
【java|springboot/maven-orika 映射】
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)