xkbeancomparator 介绍
xkbeancomparator 是一个 java bean 对比修改并输出差异的工具。
适用场景:用户编辑提交时,需要记录修改内容,修改前后的值对比,生成操作记录;可以选择记录的字段和字段说明,自定义操作记录。
0.依赖 dependency:
<dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xkbeancomparator</artifactId> <version>0.0.1</version> </dependency>
1.常见用处:
2.主要功能类和用法:
主要方法为:
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] 举报,一经查实,本站将立刻删除。