xkbeancomparator Java bean 对比修改并输出差异的工具

程序名称:xkbeancomparator

授权协议: Apache

操作系统: 跨平台

开发语言: Java

xkbeancomparator 介绍


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

xkbeancomparator 官网

https://gitee.com/xkzhangsan/xkbeancomparator

相关编程语言

BlazeDS 是一个基于服务器的Java 远程控制(remoting...
OVal 是一个可扩展的Java对象数据验证框架,验证的规...
Volta 是一套开发工具,专为开发分布式、实时系统应...
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG...
JADE (Java Agent DEvelopment Framework) 是一个完...
FastMM ,在D2006和2007中已代替了原来的内存管理器。