您好,登錄后才能下訂單哦!
本篇內容主要講解“如何使用xkbeancomparator對比javabean生成操作記錄”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用xkbeancomparator對比javabean生成操作記錄”吧!
xkbeancomparator 是一個 java bean 對比修改并輸出差異的工具。github地址
適用場景:用戶編輯提交時,需要記錄修改內容,修改前后的值對比,生成操作記錄;可以選擇記錄的字段和字段說明,自定義操作記錄。
特點:
jdk 1.7+
不依賴第三方jar,大小非常小
使用反射,調用get方法對比字段值。
使用實例:xkbeancomparator-samples
(1)添加pom依賴
<dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xkbeancomparator</artifactId> <version>0.0.1</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.
到此,相信大家對“如何使用xkbeancomparator對比javabean生成操作記錄”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。