摘要:项目简介用于对象属性赋值。示例代码对象的定义其中对象和对象的属性是相同的。名称年龄生日字符串列表属性赋值测试案例我们构建的属性,然后调用类似于和,并验证结果符合我们的预期。
项目简介
Bean-Mapping 用于 java 对象属性赋值。
项目中经常需要将一个对象的属性,赋值到另一个对象中。
常见的工具有很多,但都多少不够简洁,要么不够强大。
特性支持对象属性的浅拷贝
变更日志变更日志快速开始 准备
JDK1.8 及其以上版本
Maven 3.X 及其以上版本
maven 项目依赖核心类说明 BeanUtilcom.github.houbb bean-mapping-core 0.0.1
提供一个简单的静态方法 copyProperties。
/** * 复制属性 * 将 source 中的赋值给 target 中名称相同,且可以赋值的类型中去。类似于 spring 的 BeanUtils。 * @param source 原始对象 * @param target 目标对象 */ public static void copyProperties(final Object source, Object target)测试代码参考
详情参见 bean-mapping-test 模块下的测试代码。
示例代码 对象的定义BaseSource.java & BaseTarget.java
其中 BaseSource 对象和 BaseTarget 对象的属性是相同的。
public class BaseSource { /** * 名称 */ private String name; /** * 年龄 */ private int age; /** * 生日 */ private Date birthday; /** * 字符串列表 */ private List属性赋值测试案例stringList; //getter & setter }
我们构建 BaseSource 的属性,然后调用
BeanUtil.copyProperties(baseSource, baseTarget);
类似于 spring BeanUtils 和 Apache BeanUtils,并验证结果符合我们的预期。
/** * 基础测试 */ @Test public void baseTest() { BaseSource baseSource = buildBaseSource(); BaseTarget baseTarget = new BaseTarget(); BeanUtil.copyProperties(baseSource, baseTarget); // 断言赋值后的属性和原来相同 Assertions.assertEquals(baseSource.getAge(), baseTarget.getAge()); Assertions.assertEquals(baseSource.getName(), baseTarget.getName()); Assertions.assertEquals(baseSource.getBirthday(), baseTarget.getBirthday()); Assertions.assertEquals(baseSource.getStringList(), baseTarget.getStringList()); } /** * 构建用户信息 * @return 用户 */ private BaseSource buildBaseSource() { BaseSource baseSource = new BaseSource(); baseSource.setAge(10); baseSource.setName("映射测试"); baseSource.setBirthday(new Date()); baseSource.setStringList(Arrays.asList("1", "2")); return baseSource; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/73387.html
摘要:简单来说,是一个轻量级的控制反转和面向切面的容器框架。变成的支持提供面向切面编程,可以方便的实现对程序进行权限拦截,运行监控等功能。用于反射创建对象,默认情况下调用无参构造函数。指定对象的作用范围。 1.Spring介绍 1.1 Spring概述 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert...
摘要:使用的好处知乎的回答不用自己组装,拿来就用。统一配置,便于修改。 前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工厂模式,总的来说还是非常值得的! 本来想的是刷完《Spring 实战 (第4版)》和《精通Spring4.x 企业应用开发实战》...
摘要:入门篇学习总结时间年月日星期三说明本文部分内容均来自慕课网。主要的功能是日志记录,性能统计,安全控制,事务处理,异常处理等等。 《Spring入门篇》学习总结 时间:2017年1月18日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://git...
摘要:只有同时生效时,才会发生赋值。具体的生效实现类型转换默认不进行转换为了确保转换的确定性灵活性。对象中指定这个属性,不会改变对象的属性值和类型。 BeanMapping 为了更加灵活的指定映射方式,0.0.2 版本引入了 @BeanMapping 注解。 注解的定义 注解定义在 bean-mapping-api 模块中,bean-mapping-core 会默认引入此模块。 packag...
摘要:表达式语言依赖关系提供对变量插值的支持,允许在违规消息中使用表达式。这是当相应属性的值未通过验证时通常会呈现的消息。任何违反对象中定义的约束的行为都将作为返回。案例结论本文重点介绍了标准的简单传递,并使用注释和说明了验证的基础知识。 案例概述 在这本文中,我们将介绍使用标准框架验证Java bean的基础知识 - JSR 380,也称为Bean Validation 2.0。 当然,验...
阅读 3040·2021-10-12 10:12
阅读 1547·2021-09-09 11:39
阅读 1817·2019-08-30 15:44
阅读 2271·2019-08-29 15:23
阅读 2881·2019-08-29 15:18
阅读 2909·2019-08-29 13:02
阅读 2668·2019-08-26 18:36
阅读 711·2019-08-26 12:08