java beancomparator_xkbeancomparator
xkbeancomparator是一个java bean对比修改并输出差异的工具。
xkbeancomparator is a Java bean contrast modification and outputs the difference.
0.依赖 dependency:
com.github.xkzhangsan
xkbeancomparator
0.0.3
1.常见用处 Common use:
(1)对修改过的对象进行对比生成修改日志The modified objects are compared to generate a change log
;
(2)对比部分字段修改,根据字段注释输出日志Compare partial field modifications and output the log based on field comments
。
2.主要功能类和用法 Main function classes and usage:
主要类名称 Class:BeanComparator.java
主要方法为 Method :
public static String compareBean(Object source, Object target)
public static CompareResult getCompareResult(Object source, Object target)
(1)添加pom依赖
com.github.xkzhangsan
xkbeancomparator
0.0.2
(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 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)说明 instructions
上面是推荐用法,使用辅助日志类能统一维护一个java bean的注释map,简化调用。
The recommended usage, above, is to use secondary logging classes to uniformly maintain an annotated map of a Java bean, simplifying invocation.
欢迎提建议 Suggestions are welcome!issue
java beancomparator_xkbeancomparator相关推荐
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常
kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3
OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...
- Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid
Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...
- 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码
java开发必知必会之看源码,而看源码的第一步则是找到源码
- java基本类型转换,随记
java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...
最新文章
- python【蓝桥杯vip练习题库】BASIC-26报时助手
- php 发送http请求
- asp.net gridview删除 获取到第一行第一列的单元格内容_VBA中的常用单元格引用方式...
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- java 设置系统参数_Java如何设置系统参数和运行参数
- leetcode中使用c++需要注意的点以及各类容器的初始化、常用成员函数
- java写出http数据包_java用jpcap怎么识别出http和https的数据包?
- 再谈RetinaNet
- thinkcmf 配置初始化加载模版
- 基于springboot,vue旅游信息推荐系统
- 关于R4s软路由刷机教程
- STM32学习——直接存储器访问(DMA)
- orange's一个操作系统的实现--学习过程 第三章:a 为什么需要认识IA32架构IntelCPU保护模式
- vue使用高德地图第一次进去点标记有数据,第二次进去就没有了
- .Android手机邮箱设置详细教程
- Maltego详细安装及使用教程
- 微信小程序支付(基于Java实现微信JSAPI支付):支付,提现,退款
- 开源PLM软件Aras详解二 汉化以及界面
- 如何获取(清除)IE缓存地址信息
- Linux下编写贪吃蛇游戏
热门文章
- 大道至简 爱上Metro
- 第6章 循环结构程序设计
- iis5.1配置php运行环境
- pc和移动端获取滚动条的位置
- Codeforces Round #315 (Div. 1) A. Primes or Palindromes? 暴力
- Geodatabase - 修改字段别名(Field Alias)
- WHY数学表达式的3D可视化
- 转载sanmusoft 论电脑报论坛的挂掉及电脑报的最后倒掉
- 用贝叶斯定理解决三门问题并用Python进行模拟(Bayes‘ Rule Monty Hall Problem Simulation Python)
- phpredis报错信息:protocol error, got ‘o‘ as reply type byte解决方案