1.導入cglib-nodep-2.1.3.jar
2.在javaBean 對象中重寫toString()方法 比如是UserManageVo.Java
public String toString(){
return BeanTools.getBeanDesc(UserManageVo.this);
}
java 代碼
1
package BeanUtils;
2
3
import net.sf.cglib.beans.BeanMap;
4
5
public class BeanTools {
6
private static String LINE = System.getProperty("line.separator", "\r\n");
7
8
/**
9
* 對象中重寫toString()方法,在打印日志的時候調用
10
* @param obj
11
* @return
12
* @return String
13
*/
14
public static String getBeanDesc(Object obj) {
15
StringBuffer bf = new StringBuffer();
16
bf.append(LINE + "{" + LINE + "Class = " + obj.getClass().getName()
17
+ LINE);
18
BeanMap beanMap = BeanMap.create(obj);
19
for (Object object : beanMap.keySet()) {
20
Object value = beanMap.get(object);
21
if (null != value) {
22
/**
23
* 這是定義對象的是時候用到
24
*/
25
String className = value.getClass().getName();
26
if (className.startsWith("test.UserManageEvent")
27
|| className.startsWith("test.BasicEvent")
28
|| className.startsWith("test.UserManageVo")) {
29
bf.append(object + " = " + getBeanDesc(value) + LINE);
30
}
31
32
/**
33
* 這是數組對象的是時候用到
34
*/
35
if (className.startsWith("Ltest.UserManageEvent")
36
|| className.startsWith("Ltest.BasicEvent")
37
|| className.startsWith("Ltest.UserManageVo")) {
38
Object[] objs = (Object[]) value;
39
for (int i = 0; i < objs.length; i++) {
40
bf.append(object + " = " + getBeanDesc(objs[i]) + LINE);
41
}
42
}
43
44
/**
45
* 對String數組重寫toString()方法
46
*/
47
if (className.startsWith("[Ljava.lang.String")) {
48
Object[] objs = (Object[]) value;
49
for (int i = 0; i < objs.length; i++) {
50
bf.append(object + "[" + i + "]" + " = " + objs[i]
51
+ LINE);
52
}
53
}
54
}
55
bf.append(object + " = " + value + LINE);
56
}
57
bf.append("}");
58
return bf.toString();
59
}
60
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

java代碼
/Files/yjlongfei/beanUtil.rar