Orika是一个简单、快速的JavaBean拷贝框架,它能够递归地将数据从一个JavaBean复制到另一个JavaBean,这在多层应用开发中是非常有用的

Orika为开发者提供了如下功能:

1.映射复杂的、深层次结构性对象。

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

3.自动创建映射,并且在部分或所有映射上自定义。

4.创建转换器,以完全控制对象图中的任何特定对象集合的映射——按类型,甚至是通过特定的属性名。

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

6.用一个配置应用双向映射。

7.为一个目标抽象类或接口映射到具体的实现类。

8.映射POJO属性到Lists, Arrays, and Maps。

pom.xml添加相关的依赖,并进行加载

<!--orika -->
<dependency><groupId>ma.glasnost.orika</groupId><artifactId>orika-core</artifactId><version>1.5.1</version>
</dependency>    <!--lombok 自动创建pojo的set/get方法 -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

首先创建两个对象

UserA:

import lombok.Data;
import org.springframework.data.annotation.Id;@Data
public class UserA {@Idprivate int id;private String name ;private int age;@Overridepublic String toString() {return "UserA{id="+id+",name="+name+",age="+age+"}";}
}

UserB:

import lombok.Data;
import org.springframework.data.annotation.Id;@Data
public class UserB {@Idprivate 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 {@Testpublic 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}

springboot/maven-orika 映射相关推荐

  1. orika 映射非空字段_Orika:将JAXB对象映射到业务/域对象

    orika 映射非空字段 这篇文章着眼于使用Orika将JAXB对象映射到业务域对象. 本月初, 我使用基于反射的Dozer讨论 了相同的映射用例 . 在本文中,我假设需要映射相同的示例类,但是它们将 ...

  2. SpringBoot 整合 Dozer 映射框架

    SpringBoot 整合 Dozer 映射框架 1. Dozer 介绍 2. 为什么要使用映射框架 Dozer 3. Dozer 映射框架的使用 1. Dozer 介绍 Dozer 是一个 Java ...

  3. Java项目:宠物商城系统(java+Springboot+Maven+mybatis+Vue+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  4. Java项目:食品溯源系统(java+Springboot+Maven+mybatis+Vue+mysql+wd)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  5. Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8. ...

  6. Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试,教材列表,教学设计,帮助中心 ...

  7. Java项目:花店商城系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 商品的分类展示,用户的注册登录,购物车,订单结算,购物车加减,后台商品管理,分类管理,订单管理等等功能. 二 ...

  8. Java项目:平行志愿管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 系统管理,招生计划,学生管理,录取结果,自动分配,调剂管理等等. 二.项目运行 环境配置: Jdk1.8 + ...

  9. Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 学生管理,教师管理,课程管理,成绩管理,系统管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomc ...

  10. Java项目:考试管理系统(java+Springboot+Maven+Jpa+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 支持单选题.多选题.判断题支持学生(student).教师(teacher).管理员(admin)三种角色学 ...

最新文章

  1. Java日期时间使用总结
  2. 服务器可以划分成虚拟主机,云服务器是虚拟主机吗
  3. 论文笔记:N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FORINTERPRETABLE TIME SERIES FORECASTING
  4. 思维+multiset ZOJ Monthly, July 2015 - H Twelves Monkeys
  5. nacos 开启权限验证后 报错状态 403
  6. android 字体像素转换工具类_android工具类,转换大小写,保留小数点处理方法
  7. typedef函数用法
  8. (9) tomcat中实现同一虚拟机中所有应用程序单点登录SSO
  9. 栗子——自定义EditText实现右下角计数控件
  10. Mac电脑版微信】双开方法,最简单的微信多开教程
  11. Spring Bean生命周期(简单易懂)
  12. iexplore.exe_如何一次杀死所有iexplore.exe进程?
  13. CSS特效六:加载动画
  14. 软考真题———2018上
  15. 插件化基础(二)——加载插件资源
  16. 【python】根据pixiv网站的图片url下载图片到本地
  17. STC89C52定时器的简介
  18. 基于TMS32F28035的CLA学习
  19. 中国外交部和中国驻英国使、领馆联系办法
  20. vs2010打包解决“.NET Framework 3.5 SP1”

热门文章

  1. 手指计数——长在身上的计算机
  2. 基于WIFI连接MAC绑定的点名及数据挖掘探究
  3. 数学建模债券投资组合_最优投资组合问题的数学模型
  4. 邓仰东专栏|机器学习的那些事儿(一)
  5. Java实现时间划分
  6. primeng dropdown ngmodel 选择项初始化
  7. AI安全领域的“雨山机车大赛”,改变了什么?
  8. QC4+充电协议_原来那么多手机支持QC4+快充,小米最多,只是之前用错了充电头...
  9. 【Javaweb】【答卷】萌狼蓝天大二上学期期末Javaweb考试复习卷(一)
  10. 粒子群算法理解+求解01背包问题