xkbeancomparator 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
xkbeancomparator 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
xkbeancomparator 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开源组织
地区 国产
投 递 者 侠客张三
适用人群 未知
收录时间 2019-10-29

软件简介

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"

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(2)
发表于大前端专区
2019/12/29 19:29

xkbeancomparator 0.0.3 发布

0.依赖 dependency: <dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xkbeancomparator</artifactId> <version>0.0.3</version> </dependency> 1.常见用处: 对修改过的对象进行对比生成修改日志; 对比部分字段修改,根据字段注释输出日志。 2.主要功能类和用法: 主要类名称:BeanComparator.java 主要方法为: public static String compareBean(Object source, ...

0
1
发表于大前端专区
2019/11/01 21:23

xkbeancomparator 0.0.2 版本发布

xkbeancomparator 是一个 java bean 对比修改并输出差异的工具。 适用场景:用户编辑提交时,需要记录修改内容,修改前后的值对比,生成操作记录;可以选择记录的字段和字段说明,自定义操作记录。 0.0.2 版本: 支持基本类型的对比,比如 boolean 类型时,get 方法会以 is 开头进行了特殊处理。 软件说明 0.依赖: <dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xkbeancomparator</artifa...

1
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
2 评论
8 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部