xkbeancomparator 0.0.2 版本发布
xkbeancomparator 是一个 java bean 对比修改并输出差异的工具。
适用场景:用户编辑提交时,需要记录修改内容,修改前后的值对比,生成操作记录;可以选择记录的字段和字段说明,自定义操作记录。
0.0.2 版本:
- 支持基本类型的对比,比如 boolean 类型时,get 方法会以 is 开头进行了特殊处理。
软件说明
0.依赖:
<dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xkbeancomparator</artifactId> <version>0.0.2</version> </dependency>
1.常见用处:
(1)对修改过的对象进行对比生成修改日志;
(2)对比部分字段修改,根据字段注释输出日志。
2.主要功能类和用法:
主要类名称 Class:BeanComparator.java
主要方法为 Method :
public static String compareBean(Object source, Object target) public static CompareResult getCompareResult(Object source, Object target)
3 实例 xkbeancomparator-samples ( https://github.com/xkzhangsan/xkbeancomparator-samples )
(1)添加pom依赖
<dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xkbeancomparator</artifactId> <version>0.0.2</version> </dependency>
(2)java bean类 User
import java.math.BigDecimal; public class User { Integer id; String name; private BigDecimal point; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public BigDecimal getPoint() { return point; } public void setPoint(BigDecimal point) { this.point = point; } }
(3)增加辅助日志类 UserLog
import java.util.HashMap; import java.util.Map; import com.xkzhangsan.xkbeancomparator.BeanComparator; import com.xkzhangsan.xkbeancomparator.CompareResult; public class UserLog{ private static final Map<String, String> propertyTranslationMap = new HashMap<>(); static { propertyTranslationMap.put("name", "用户名"); propertyTranslationMap.put("point", "积分"); } public static CompareResult getCompareResult(Object source, Object target){ return BeanComparator.getCompareResult(source, target, propertyTranslationMap); } }
(4) 使用
@Test public void test1() { User u1 = new User(); u1.setId(1); u1.setName("aa"); u1.setPoint(new BigDecimal("111111111111.12")); User u2 = new User(); u2.setId(1); u2.setName("aa2"); u2.setPoint(new BigDecimal("111111111111.15")); CompareResult compareResult = UserLog.getCompareResult(u1, u2); if (compareResult.isChanged()) { System.out.println(compareResult.getChangeContent()); } }
(5)输出结果
用户名:aa->aa2,积分:111111111111.12->111111111111.15,
(6)说明
上面是推荐用法,使用辅助日志类能统一维护一个 java bean 的注释 map,简化调用。
欢迎提建议!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《吊打面试官》系列- Redis基础
你知道的越多,你不知道的越多 点赞再看,养成习惯 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写吊打面试官系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,吊打一同面试的同僚(好像不太好),疯狂收割大厂offer! 面试开始 一个大腹便便,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!但是我们腹有诗书气自华,虚都不虚。 小伙子您好,看你简历上写了你项目里面用到了Redis,你们为啥用Redis? 心里忍不住暗骂,这叫啥问题,大家不都是用的这个嘛,但是你不能说出来。 认真回答道:帅气迷人的面试官您好,因为传统的关系型数据库如Mysql已经不能适用所有的场景了,比如秒杀的库存扣减,APP首页的访问流量高峰等等,...
- 下一篇
品高云发展侧记
品高云发展侧记 云计算,一个让行外人茫然的词语,却让行内人倾注心血去挖掘它潜在的巨大能量。 2019年,羊城云计算行业发生了这样一件事——品高云(“品高云BingoCloud”为广州市品高软件股份有限公司旗下品牌)于10月24日在广州召开2019年度“行业+云”发布会,来自政府、公安、轨交、金融、教育、超大型企业等垂直行业超过500名政企用户及业界同仁莅临现场,见证品高云V9.0及其国产化生态的全面亮相。 因云而生 品高软件副总裁兼CTO刘忻 品高软件成立于2003年,提起品高云的“出身”,品高软件副总裁兼CTO刘忻回顾道,“公司成立之初,主要为电信运营商、轨道交通、政府、大型企业等行业龙头客户提供顾问咨询、核心业务系统和办公系统的开发。转折发生在2008年,品高软件开始研发云计算基础架构平台,两年后国内第一套商用基础云架构产品品高云 V1.0正式亮相。这标志着品高软件正式进入云计算行业。” 2012年5月,品高云V3.0发布,实现亚马逊AWS接口标准兼容的弹性计算、存贮、弹性计费等功能,还推出了如今各大云厂商才普遍标配的应用软件商店。 2015年10月21日,品高云V6.0发布,推出...
相关文章
文章评论
共有0条评论来说两句吧...