如何使用xkbeancomparator对比javabean生成操作记录

本篇内容主要讲解“如何使用xkbeancomparator对比javabean生成操作记录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用xkbeancomparator对比javabean生成操作记录”吧!

成都创新互联公司成都网站建设按需设计网站,是成都网站制作公司,为围栏护栏提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站设计热线:18982081108

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

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

特点:

jdk 1.7+

不依赖第三方jar,大小非常小

使用反射,调用get方法对比字段值。

使用实例:xkbeancomparator-samples

(1)添加pom依赖

  
  com.github.xkzhangsan    
  xkbeancomparator       
  0.0.1    

(2)java bean类 User

如何使用xkbeancomparator对比javabean生成操作记录

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.

到此,相信大家对“如何使用xkbeancomparator对比javabean生成操作记录”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


文章标题:如何使用xkbeancomparator对比javabean生成操作记录
链接URL:http://azwzsj.com/article/pghpog.html