微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐