当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

xkbeancomparator

Java bean 对比修改并输出差异的工具
授权协议 Apache
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 邓仲卿
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

xkbeancomparator 是一个 java bean 对比修改并输出差异的工具。

适用场景:用户编辑提交时,需要记录修改内容,修改前后的值对比,生成操作记录;可以选择记录的字段和字段说明,自定义操作记录。

0.依赖 dependency:

<dependency>  
  <groupId>com.github.xkzhangsan</groupId>    
  <artifactId>xkbeancomparator</artifactId>       
  <version>0.0.1</version>    
</dependency>    

1.常见用处:

  • 对修改过的对象进行对比生成修改日志;
  • 对比部分字段修改,根据字段注释输出日志。

2.主要功能类和用法:

  • 主要类名称:BeanComparator.java
  • 主要方法为:
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.1</version>    
</dependency>    

(2)增加辅助日志类

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);
   }
}

(3) 使用

@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());
	}
}

(4)说明

上面是推荐用法,使用辅助日志类 UserLog 能统一维护一个 java bean 的注释 map 说明,简化调用。 其中日期格式为:"yyyy-MM-dd HH����ss"

  • 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

  • xkbeancomparator是一个 java bean 对比修改并输出差异的工具。github地址 适用场景:用户编辑提交时,需要记录修改内容,修改前后的值对比,生成操作记录;可以选择记录的字段和字段说明,自定义操作记录。 特点: jdk 1.7+ 不依赖第三方jar,大小非常小 使用反射,调用get方法对比字段值。 (1)添加pom依赖 com.github.xkzhangsan xkbea

 相关资料
  • 问题内容: 我试图突出显示两个数据框之间到底发生了什么变化。 假设我有两个Python Pandas数据框: 我的目标是输出一个HTML表: 标识已更改的行(可以是int,float,boolean,string) 输出具有相同,OLD和NEW值的行(理想情况下,将其输出到HTML表中),以便使用者可以清楚地看到两个数据框之间的变化: id Name score isEnrolled Commen

  • 我想我可以做一个逐行和逐列的比较,但有没有更简单的方法?

  • 主要内容:1.Broker差异,2.Producer差异,3.Consumer差异1.Broker差异 主从差异: kafka的master/slave是基于partition维度的,而rocketmq是基于broker维度的;kafka的master/slave是可以切换的,而rocketmq不行,当rocketmq的master宕机时,读能被路由到slave上,但写会被路由到此topic的其他broker上。 刷盘: rocketmq支持同步刷盘,也就是每次消息都等刷入磁盘

  • 问题内容: 我试图突出显示两个数据框之间到底发生了什么变化。 假设我有两个Python Pandas数据框: 我的目标是输出一个HTML表: 标识已更改的行(可以是int,float,boolean,string) 输出具有相同,OLD和NEW值的行(理想情况下,将其输出到HTML表中),以便使用者可以清楚地看到两个数据框之间的变化: id Name score isEnrolled Commen

  • 问题内容: 我想知道如何比较两个布尔数组并列出不匹配的布尔值。 我写了一个2数组的简单示例。 我如何比较array1和array2并显示不匹配的内容。我正在尝试执行此操作以检查问答游戏的用户结果。 谢谢! 问题答案: 这里的 一个 实现,但无论是一个你追求的是完全不可能说,因为你没有指定你认为答案 应该 是: 如果答案与正确答案相匹配,则将为您提供布尔值列表。 但是,假设您想要的是正确答案的 索引

  • 问题内容: 我有这段代码,它给了我并发修改异常。即使看不到任何并发修改,我也无法理解为什么继续得到它。 问题答案: 为了避免,你应该这样编写代码: 允许你在迭代期间修改列表,但不能在创建和使用列表之间进行修改。

  • markdown 怎么贴出『代码差异对比』 或者说,为什么 github 的评论功能可以实现『代码差异对比』 https://github.com/zauberzeug/nicegui/issues/2500 就是 git 的 diff 功能

  • 问题内容: 我需要比较两个CSV文件并在第三个CSV文件中打印出差异。在我的情况下,第一个CSV是一个名为old.csv的哈希表的旧列表,第二个CSV是包含新旧哈希表的新哈希表。 这是我的代码: 第三个文件是旧文件的副本,而不是更新文件。怎么了 ?我希望你能帮助我,非常感谢! PS:我不想使用diff 问题答案: 问题在于您正在将中的每一行与中的同一行进行比较。只要一个文件中有多余的一行,您就会发