xkbeancomparator

xkbeancomparator is a Java bean contrast modification and outputs the difference

License

License

GroupId

GroupId

com.github.xkzhangsan
ArtifactId

ArtifactId

xkbeancomparator
Last Version

Last Version

0.0.3
Release Date

Release Date

Type

Type

jar
Description

Description

xkbeancomparator
xkbeancomparator is a Java bean contrast modification and outputs the difference
Project URL

Project URL

https://github.com/xkzhangsan/xkbeancomparator
Source Code Management

Source Code Management

https://github.com/xkzhangsan/xkbeancomparator.git

Download xkbeancomparator

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.xkzhangsan/xkbeancomparator/ -->
<dependency>
    <groupId>com.github.xkzhangsan</groupId>
    <artifactId>xkbeancomparator</artifactId>
    <version>0.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.xkzhangsan/xkbeancomparator/
implementation 'com.github.xkzhangsan:xkbeancomparator:0.0.3'
// https://jarcasting.com/artifacts/com.github.xkzhangsan/xkbeancomparator/
implementation ("com.github.xkzhangsan:xkbeancomparator:0.0.3")
'com.github.xkzhangsan:xkbeancomparator:jar:0.0.3'
<dependency org="com.github.xkzhangsan" name="xkbeancomparator" rev="0.0.3">
  <artifact name="xkbeancomparator" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.xkzhangsan', module='xkbeancomparator', version='0.0.3')
)
libraryDependencies += "com.github.xkzhangsan" % "xkbeancomparator" % "0.0.3"
[com.github.xkzhangsan/xkbeancomparator "0.0.3"]

Dependencies

provided (1)

Group / Artifact Type Version
org.apache.maven.plugins : maven-javadoc-plugin jar 2.7

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

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

xkbeancomparator is a Java bean contrast modification and outputs the difference.

0.依赖 dependency:

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

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)

3 实例 xkbeancomparator-samples ( https://github.com/xkzhangsan/xkbeancomparator-samples

(1)添加pom依赖

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

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

}

(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.

(7)目前只支持基本类型的对比,不支持集合等复杂类型对比。

欢迎提建议 Suggestions are welcome!

Versions

Version
0.0.3
0.0.2
0.0.1