Closed yang-yao closed 2 years ago
includes和excludes是支持正则表达式的,你的pojo类的存放没有统一的包命名吗?如果有的话应该是可以用一个或几个正则囊括的。
如果实在不行,只能拿到调用链数据后,你自己想办法删除get、set方法了,json字符串的操作应该是比较容易的。
你提到了@Data注解,你们是使用了lombok来自动生成源代码了吧?这给我提了个醒,我会升级一个版本,以支持在excludes参数中使用注解来指定范围,所以你也可以稍微等几天再试试看
看了一下lombok的api,发现data注解的生命周期是source,所以探针是读不到它的,我之前的想法行不通。
你可以随便给我一个有data注解的类编译出来的class吗?我可以研究看看它自动生成的方法有什么特征。
pojo类的存放没有统一的包命名,分散在项目里,有的在domain目录下面 有的在entity,有的在dto,vo,bo 甚至param
这样有一些信息我看不到。你可以这样,javap -c -v -p 有data注解的类.class >a.log,然后将a.log的内容贴上来。多行代码请用```(3个`)包围起来↓。
```
a.log的内容
```
Classfile /Users/yy/Downloads/MethodInfo.class
Last modified 2022-8-4; size 4417 bytes
MD5 checksum c3405de7f62a8c57d5a9cdde7b8b763e
Compiled from "MethodInfo.java"
public class org.jacoco.core.common.domain.MethodInfo implements java.io.Serializable
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Class #108 // java/lang/StringBuilder
#2 = Methodref #1.#109 // java/lang/StringBuilder."<init>":()V
#3 = Methodref #110.#111 // org/jacoco/core/common/domain/ClassInfo.getAsmClassName:()Ljava/lang/String;
#4 = Methodref #1.#112 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#5 = String #113 // .
#6 = Methodref #16.#114 // org/jacoco/core/common/domain/MethodInfo.getMethodName:()Ljava/lang/String;
#7 = Methodref #16.#115 // org/jacoco/core/common/domain/MethodInfo.getParams:()Ljava/lang/String;
#8 = Methodref #1.#116 // java/lang/StringBuilder.toString:()Ljava/lang/String;
#9 = Class #117 // org/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder
#10 = Methodref #9.#109 // org/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder."<init>":()V
#11 = Fieldref #16.#118 // org/jacoco/core/common/domain/MethodInfo.methodName:Ljava/lang/String;
#12 = Fieldref #16.#119 // org/jacoco/core/common/domain/MethodInfo.md5:Ljava/lang/String;
#13 = Fieldref #16.#120 // org/jacoco/core/common/domain/MethodInfo.diffType:Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
#14 = Fieldref #16.#121 // org/jacoco/core/common/domain/MethodInfo.methodUri:Ljava/lang/String;
#15 = Fieldref #16.#122 // org/jacoco/core/common/domain/MethodInfo.params:Ljava/lang/String;
#16 = Class #123 // org/jacoco/core/common/domain/MethodInfo
#17 = Methodref #16.#124 // org/jacoco/core/common/domain/MethodInfo.canEqual:(Ljava/lang/Object;)Z
#18 = Methodref #31.#125 // java/lang/Object.equals:(Ljava/lang/Object;)Z
#19 = Methodref #16.#126 // org/jacoco/core/common/domain/MethodInfo.getMd5:()Ljava/lang/String;
#20 = Methodref #16.#127 // org/jacoco/core/common/domain/MethodInfo.getDiffType:()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
#21 = Methodref #16.#128 // org/jacoco/core/common/domain/MethodInfo.getMethodUri:()Ljava/lang/String;
#22 = Methodref #31.#129 // java/lang/Object.hashCode:()I
#23 = String #130 // MethodInfo(methodName=
#24 = String #131 // , md5=
#25 = String #132 // , diffType=
#26 = Methodref #1.#133 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
#27 = String #134 // , methodUri=
#28 = String #135 // , params=
#29 = String #136 // )
#30 = Methodref #31.#109 // java/lang/Object."<init>":()V
#31 = Class #137 // java/lang/Object
#32 = Class #138 // java/io/Serializable
#33 = Utf8 MethodInfoBuilder
#34 = Utf8 InnerClasses
#35 = Utf8 serialVersionUID
#36 = Utf8 J
#37 = Utf8 ConstantValue
#38 = Long 1l
#40 = Utf8 methodName
#41 = Utf8 Ljava/lang/String;
#42 = Utf8 md5
#43 = Utf8 diffType
#44 = Utf8 Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
#45 = Utf8 methodUri
#46 = Utf8 params
#47 = Utf8 getMethodUri
#48 = Utf8 (Lorg/jacoco/core/common/domain/ClassInfo;)Ljava/lang/String;
#49 = Utf8 Code
#50 = Utf8 LineNumberTable
#51 = Utf8 LocalVariableTable
#52 = Utf8 this
#53 = Utf8 Lorg/jacoco/core/common/domain/MethodInfo;
#54 = Utf8 classInfo
#55 = Utf8 Lorg/jacoco/core/common/domain/ClassInfo;
#56 = Utf8 (Ljava/lang/String;)Ljava/lang/String;
#57 = Utf8 asmClassNmae
#58 = Utf8 builder
#59 = Utf8 ()Lorg/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder;
#60 = Utf8 getMethodName
#61 = Utf8 ()Ljava/lang/String;
#62 = Utf8 getMd5
#63 = Utf8 getDiffType
#64 = Utf8 ()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
#65 = Utf8 getParams
#66 = Utf8 setMethodName
#67 = Utf8 (Ljava/lang/String;)V
#68 = Utf8 setMd5
#69 = Utf8 setDiffType
#70 = Utf8 (Lorg/jacoco/core/common/enums/DiffResultTypeEnum;)V
#71 = Utf8 setMethodUri
#72 = Utf8 setParams
#73 = Utf8 equals
#74 = Utf8 (Ljava/lang/Object;)Z
#75 = Utf8 o
#76 = Utf8 Ljava/lang/Object;
#77 = Utf8 other
#78 = Utf8 this$methodName
#79 = Utf8 other$methodName
#80 = Utf8 this$md5
#81 = Utf8 other$md5
#82 = Utf8 this$diffType
#83 = Utf8 other$diffType
#84 = Utf8 this$methodUri
#85 = Utf8 other$methodUri
#86 = Utf8 this$params
#87 = Utf8 other$params
#88 = Utf8 StackMapTable
#89 = Class #123 // org/jacoco/core/common/domain/MethodInfo
#90 = Class #137 // java/lang/Object
#91 = Utf8 canEqual
#92 = Utf8 hashCode
#93 = Utf8 ()I
#94 = Utf8 PRIME
#95 = Utf8 I
#96 = Utf8 result
#97 = Utf8 $methodName
#98 = Utf8 $md5
#99 = Utf8 $diffType
#100 = Utf8 $methodUri
#101 = Utf8 $params
#102 = Utf8 toString
#103 = Utf8 <init>
#104 = Utf8 ()V
#105 = Utf8 (Ljava/lang/String;Ljava/lang/String;Lorg/jacoco/core/common/enums/DiffResultTypeEnum;Ljava/lang/String;Ljava/lang/String;)V
#106 = Utf8 SourceFile
#107 = Utf8 MethodInfo.java
#108 = Utf8 java/lang/StringBuilder
#109 = NameAndType #103:#104 // "<init>":()V
#110 = Class #139 // org/jacoco/core/common/domain/ClassInfo
#111 = NameAndType #140:#61 // getAsmClassName:()Ljava/lang/String;
#112 = NameAndType #141:#142 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#113 = Utf8 .
#114 = NameAndType #60:#61 // getMethodName:()Ljava/lang/String;
#115 = NameAndType #65:#61 // getParams:()Ljava/lang/String;
#116 = NameAndType #102:#61 // toString:()Ljava/lang/String;
#117 = Utf8 org/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder
#118 = NameAndType #40:#41 // methodName:Ljava/lang/String;
#119 = NameAndType #42:#41 // md5:Ljava/lang/String;
#120 = NameAndType #43:#44 // diffType:Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
#121 = NameAndType #45:#41 // methodUri:Ljava/lang/String;
#122 = NameAndType #46:#41 // params:Ljava/lang/String;
#123 = Utf8 org/jacoco/core/common/domain/MethodInfo
#124 = NameAndType #91:#74 // canEqual:(Ljava/lang/Object;)Z
#125 = NameAndType #73:#74 // equals:(Ljava/lang/Object;)Z
#126 = NameAndType #62:#61 // getMd5:()Ljava/lang/String;
#127 = NameAndType #63:#64 // getDiffType:()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
#128 = NameAndType #47:#61 // getMethodUri:()Ljava/lang/String;
#129 = NameAndType #92:#93 // hashCode:()I
#130 = Utf8 MethodInfo(methodName=
#131 = Utf8 , md5=
#132 = Utf8 , diffType=
#133 = NameAndType #141:#143 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
#134 = Utf8 , methodUri=
#135 = Utf8 , params=
#136 = Utf8 )
#137 = Utf8 java/lang/Object
#138 = Utf8 java/io/Serializable
#139 = Utf8 org/jacoco/core/common/domain/ClassInfo
#140 = Utf8 getAsmClassName
#141 = Utf8 append
#142 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder;
#143 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder;
{
private static final long serialVersionUID;
descriptor: J
flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: long 1l
private java.lang.String methodName;
descriptor: Ljava/lang/String;
flags: ACC_PRIVATE
private java.lang.String md5;
descriptor: Ljava/lang/String;
flags: ACC_PRIVATE
private org.jacoco.core.common.enums.DiffResultTypeEnum diffType;
descriptor: Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
flags: ACC_PRIVATE
private java.lang.String methodUri;
descriptor: Ljava/lang/String;
flags: ACC_PRIVATE
private java.lang.String params;
descriptor: Ljava/lang/String;
flags: ACC_PRIVATE
public java.lang.String getMethodUri(org.jacoco.core.common.domain.ClassInfo);
descriptor: (Lorg/jacoco/core/common/domain/ClassInfo;)Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: new #1 // class java/lang/StringBuilder
3: dup
4: invokespecial #2 // Method java/lang/StringBuilder."<init>":()V
7: aload_1
8: invokevirtual #3 // Method org/jacoco/core/common/domain/ClassInfo.getAsmClassName:()Ljava/lang/String;
11: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc #5 // String .
16: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: aload_0
20: invokevirtual #6 // Method getMethodName:()Ljava/lang/String;
23: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: aload_0
27: invokevirtual #7 // Method getParams:()Ljava/lang/String;
30: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
36: areturn
LineNumberTable:
line 41: 0
line 42: 27
line 41: 36
LocalVariableTable:
Start Length Slot Name Signature
0 37 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 37 1 classInfo Lorg/jacoco/core/common/domain/ClassInfo;
public java.lang.String getMethodUri(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: new #1 // class java/lang/StringBuilder
3: dup
4: invokespecial #2 // Method java/lang/StringBuilder."<init>":()V
7: aload_1
8: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc #5 // String .
13: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: aload_0
17: invokevirtual #6 // Method getMethodName:()Ljava/lang/String;
20: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: aload_0
24: invokevirtual #7 // Method getParams:()Ljava/lang/String;
27: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
30: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
33: areturn
LineNumberTable:
line 46: 0
LocalVariableTable:
Start Length Slot Name Signature
0 34 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 34 1 asmClassNmae Ljava/lang/String;
public static org.jacoco.core.common.domain.MethodInfo$MethodInfoBuilder builder();
descriptor: ()Lorg/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder;
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new #9 // class org/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder
3: dup
4: invokespecial #10 // Method org/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder."<init>":()V
7: areturn
LineNumberTable:
line 28: 0
public java.lang.String getMethodName();
descriptor: ()Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #11 // Field methodName:Ljava/lang/String;
4: areturn
LineNumberTable:
line 34: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public java.lang.String getMd5();
descriptor: ()Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #12 // Field md5:Ljava/lang/String;
4: areturn
LineNumberTable:
line 35: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public org.jacoco.core.common.enums.DiffResultTypeEnum getDiffType();
descriptor: ()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #13 // Field diffType:Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
4: areturn
LineNumberTable:
line 36: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public java.lang.String getMethodUri();
descriptor: ()Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #14 // Field methodUri:Ljava/lang/String;
4: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public java.lang.String getParams();
descriptor: ()Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #15 // Field params:Ljava/lang/String;
4: areturn
LineNumberTable:
line 38: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public void setMethodName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #11 // Field methodName:Ljava/lang/String;
5: return
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 6 1 methodName Ljava/lang/String;
public void setMd5(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #12 // Field md5:Ljava/lang/String;
5: return
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 6 1 md5 Ljava/lang/String;
public void setDiffType(org.jacoco.core.common.enums.DiffResultTypeEnum);
descriptor: (Lorg/jacoco/core/common/enums/DiffResultTypeEnum;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #13 // Field diffType:Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
5: return
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 6 1 diffType Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
public void setMethodUri(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #14 // Field methodUri:Ljava/lang/String;
5: return
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 6 1 methodUri Ljava/lang/String;
public void setParams(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #15 // Field params:Ljava/lang/String;
5: return
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 6 1 params Ljava/lang/String;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: ACC_PUBLIC
Code:
stack=2, locals=13, args_size=2
0: aload_1
1: aload_0
2: if_acmpne 7
5: iconst_1
6: ireturn
7: aload_1
8: instanceof #16 // class org/jacoco/core/common/domain/MethodInfo
11: ifne 16
14: iconst_0
15: ireturn
16: aload_1
17: checkcast #16 // class org/jacoco/core/common/domain/MethodInfo
20: astore_2
21: aload_2
22: aload_0
23: invokevirtual #17 // Method canEqual:(Ljava/lang/Object;)Z
26: ifne 31
29: iconst_0
30: ireturn
31: aload_0
32: invokevirtual #6 // Method getMethodName:()Ljava/lang/String;
35: astore_3
36: aload_2
37: invokevirtual #6 // Method getMethodName:()Ljava/lang/String;
40: astore 4
42: aload_3
43: ifnonnull 54
46: aload 4
48: ifnull 65
51: goto 63
54: aload_3
55: aload 4
57: invokevirtual #18 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
60: ifne 65
63: iconst_0
64: ireturn
65: aload_0
66: invokevirtual #19 // Method getMd5:()Ljava/lang/String;
69: astore 5
71: aload_2
72: invokevirtual #19 // Method getMd5:()Ljava/lang/String;
75: astore 6
77: aload 5
79: ifnonnull 90
82: aload 6
84: ifnull 102
87: goto 100
90: aload 5
92: aload 6
94: invokevirtual #18 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
97: ifne 102
100: iconst_0
101: ireturn
102: aload_0
103: invokevirtual #20 // Method getDiffType:()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
106: astore 7
108: aload_2
109: invokevirtual #20 // Method getDiffType:()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
112: astore 8
114: aload 7
116: ifnonnull 127
119: aload 8
121: ifnull 139
124: goto 137
127: aload 7
129: aload 8
131: invokevirtual #18 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
134: ifne 139
137: iconst_0
138: ireturn
139: aload_0
140: invokevirtual #21 // Method getMethodUri:()Ljava/lang/String;
143: astore 9
145: aload_2
146: invokevirtual #21 // Method getMethodUri:()Ljava/lang/String;
149: astore 10
151: aload 9
153: ifnonnull 164
156: aload 10
158: ifnull 176
161: goto 174
164: aload 9
166: aload 10
168: invokevirtual #18 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
171: ifne 176
174: iconst_0
175: ireturn
176: aload_0
177: invokevirtual #7 // Method getParams:()Ljava/lang/String;
180: astore 11
182: aload_2
183: invokevirtual #7 // Method getParams:()Ljava/lang/String;
186: astore 12
188: aload 11
190: ifnonnull 201
193: aload 12
195: ifnull 213
198: goto 211
201: aload 11
203: aload 12
205: invokevirtual #18 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
208: ifne 213
211: iconst_0
212: ireturn
213: iconst_1
214: ireturn
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 215 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 215 1 o Ljava/lang/Object;
21 194 2 other Lorg/jacoco/core/common/domain/MethodInfo;
36 179 3 this$methodName Ljava/lang/Object;
42 173 4 other$methodName Ljava/lang/Object;
71 144 5 this$md5 Ljava/lang/Object;
77 138 6 other$md5 Ljava/lang/Object;
108 107 7 this$diffType Ljava/lang/Object;
114 101 8 other$diffType Ljava/lang/Object;
145 70 9 this$methodUri Ljava/lang/Object;
151 64 10 other$methodUri Ljava/lang/Object;
182 33 11 this$params Ljava/lang/Object;
188 27 12 other$params Ljava/lang/Object;
StackMapTable: number_of_entries = 18
frame_type = 7 /* same */
frame_type = 8 /* same */
frame_type = 252 /* append */
offset_delta = 14
locals = [ class org/jacoco/core/common/domain/MethodInfo ]
frame_type = 253 /* append */
offset_delta = 22
locals = [ class java/lang/Object, class java/lang/Object ]
frame_type = 8 /* same */
frame_type = 1 /* same */
frame_type = 253 /* append */
offset_delta = 24
locals = [ class java/lang/Object, class java/lang/Object ]
frame_type = 9 /* same */
frame_type = 1 /* same */
frame_type = 253 /* append */
offset_delta = 24
locals = [ class java/lang/Object, class java/lang/Object ]
frame_type = 9 /* same */
frame_type = 1 /* same */
frame_type = 253 /* append */
offset_delta = 24
locals = [ class java/lang/Object, class java/lang/Object ]
frame_type = 9 /* same */
frame_type = 1 /* same */
frame_type = 253 /* append */
offset_delta = 24
locals = [ class java/lang/Object, class java/lang/Object ]
frame_type = 9 /* same */
frame_type = 1 /* same */
protected boolean canEqual(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
0: aload_1
1: instanceof #16 // class org/jacoco/core/common/domain/MethodInfo
4: ireturn
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 5 1 other Ljava/lang/Object;
public int hashCode();
descriptor: ()I
flags: ACC_PUBLIC
Code:
stack=2, locals=8, args_size=1
0: bipush 59
2: istore_1
3: iconst_1
4: istore_2
5: aload_0
6: invokevirtual #6 // Method getMethodName:()Ljava/lang/String;
9: astore_3
10: iload_2
11: bipush 59
13: imul
14: aload_3
15: ifnonnull 23
18: bipush 43
20: goto 27
23: aload_3
24: invokevirtual #22 // Method java/lang/Object.hashCode:()I
27: iadd
28: istore_2
29: aload_0
30: invokevirtual #19 // Method getMd5:()Ljava/lang/String;
33: astore 4
35: iload_2
36: bipush 59
38: imul
39: aload 4
41: ifnonnull 49
44: bipush 43
46: goto 54
49: aload 4
51: invokevirtual #22 // Method java/lang/Object.hashCode:()I
54: iadd
55: istore_2
56: aload_0
57: invokevirtual #20 // Method getDiffType:()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
60: astore 5
62: iload_2
63: bipush 59
65: imul
66: aload 5
68: ifnonnull 76
71: bipush 43
73: goto 81
76: aload 5
78: invokevirtual #22 // Method java/lang/Object.hashCode:()I
81: iadd
82: istore_2
83: aload_0
84: invokevirtual #21 // Method getMethodUri:()Ljava/lang/String;
87: astore 6
89: iload_2
90: bipush 59
92: imul
93: aload 6
95: ifnonnull 103
98: bipush 43
100: goto 108
103: aload 6
105: invokevirtual #22 // Method java/lang/Object.hashCode:()I
108: iadd
109: istore_2
110: aload_0
111: invokevirtual #7 // Method getParams:()Ljava/lang/String;
114: astore 7
116: iload_2
117: bipush 59
119: imul
120: aload 7
122: ifnonnull 130
125: bipush 43
127: goto 135
130: aload 7
132: invokevirtual #22 // Method java/lang/Object.hashCode:()I
135: iadd
136: istore_2
137: iload_2
138: ireturn
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 139 0 this Lorg/jacoco/core/common/domain/MethodInfo;
3 136 1 PRIME I
5 134 2 result I
10 129 3 $methodName Ljava/lang/Object;
35 104 4 $md5 Ljava/lang/Object;
62 77 5 $diffType Ljava/lang/Object;
89 50 6 $methodUri Ljava/lang/Object;
116 23 7 $params Ljava/lang/Object;
StackMapTable: number_of_entries = 10
frame_type = 255 /* full_frame */
offset_delta = 23
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object ]
stack = [ int ]
frame_type = 255 /* full_frame */
offset_delta = 3
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object ]
stack = [ int, int ]
frame_type = 255 /* full_frame */
offset_delta = 21
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object ]
stack = [ int ]
frame_type = 255 /* full_frame */
offset_delta = 4
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object ]
stack = [ int, int ]
frame_type = 255 /* full_frame */
offset_delta = 21
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object, class java/lang/Object ]
stack = [ int ]
frame_type = 255 /* full_frame */
offset_delta = 4
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object, class java/lang/Object ]
stack = [ int, int ]
frame_type = 255 /* full_frame */
offset_delta = 21
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object, class java/lang/Object, class java/lang/Object ]
stack = [ int ]
frame_type = 255 /* full_frame */
offset_delta = 4
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object, class java/lang/Object, class java/lang/Object ]
stack = [ int, int ]
frame_type = 255 /* full_frame */
offset_delta = 21
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object, class java/lang/Object, class java/lang/Object, class java/lang/Object ]
stack = [ int ]
frame_type = 255 /* full_frame */
offset_delta = 4
locals = [ class org/jacoco/core/common/domain/MethodInfo, int, int, class java/lang/Object, class java/lang/Object, class java/lang/Object, class java/lang/Object, class java/lang/Object ]
stack = [ int, int ]
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
0: new #1 // class java/lang/StringBuilder
3: dup
4: invokespecial #2 // Method java/lang/StringBuilder."<init>":()V
7: ldc #23 // String MethodInfo(methodName=
9: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload_0
13: invokevirtual #6 // Method getMethodName:()Ljava/lang/String;
16: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: ldc #24 // String , md5=
21: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: aload_0
25: invokevirtual #19 // Method getMd5:()Ljava/lang/String;
28: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: ldc #25 // String , diffType=
33: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: aload_0
37: invokevirtual #20 // Method getDiffType:()Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
40: invokevirtual #26 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
43: ldc #27 // String , methodUri=
45: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
48: aload_0
49: invokevirtual #21 // Method getMethodUri:()Ljava/lang/String;
52: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
55: ldc #28 // String , params=
57: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
60: aload_0
61: invokevirtual #7 // Method getParams:()Ljava/lang/String;
64: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
67: ldc #29 // String )
69: invokevirtual #4 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
72: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
75: areturn
LineNumberTable:
line 27: 0
LocalVariableTable:
Start Length Slot Name Signature
0 76 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public org.jacoco.core.common.domain.MethodInfo();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #30 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 29: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/jacoco/core/common/domain/MethodInfo;
public org.jacoco.core.common.domain.MethodInfo(java.lang.String, java.lang.String, org.jacoco.core.common.enums.DiffResultTypeEnum, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/jacoco/core/common/enums/DiffResultTypeEnum;Ljava/lang/String;Ljava/lang/String;)V
flags: ACC_PUBLIC
Code:
stack=2, locals=6, args_size=6
0: aload_0
1: invokespecial #30 // Method java/lang/Object."<init>":()V
4: aload_0
5: aload_1
6: putfield #11 // Field methodName:Ljava/lang/String;
9: aload_0
10: aload_2
11: putfield #12 // Field md5:Ljava/lang/String;
14: aload_0
15: aload_3
16: putfield #13 // Field diffType:Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
19: aload_0
20: aload 4
22: putfield #14 // Field methodUri:Ljava/lang/String;
25: aload_0
26: aload 5
28: putfield #15 // Field params:Ljava/lang/String;
31: return
LineNumberTable:
line 30: 0
LocalVariableTable:
Start Length Slot Name Signature
0 32 0 this Lorg/jacoco/core/common/domain/MethodInfo;
0 32 1 methodName Ljava/lang/String;
0 32 2 md5 Ljava/lang/String;
0 32 3 diffType Lorg/jacoco/core/common/enums/DiffResultTypeEnum;
0 32 4 methodUri Ljava/lang/String;
0 32 5 params Ljava/lang/String;
}
SourceFile: "MethodInfo.java"
InnerClasses:
public static #33= #9 of #16; //MethodInfoBuilder=class org/jacoco/core/common/domain/MethodInfo$MethodInfoBuilder of class org/jacoco/core/common/domain/MethodInfo
看了一下,确实没有很合适的特征值能用来筛选此类的,所以应该只能在拿到调用链数据后再处理了。
另外我以后可能还是会增加按注解指定目标的功能,届时有需要的人就可以自己写一个runtime注解来用了
新增了功能,支持在excludes参数中使用注解来指定例外范围,236975f357b36d620cb10c6cfb1e2a84a1467fbb
例如你的pojo类使用了注解MyAnno,则可以用excludes=@MyAnno
或excludes=@com.foo.bar.MyAnno
来排除探针对其的监控。
需要注意的是,注解的生命周期必须为CLASS或RUNTIME,否则工具无法读取到该注解
爆赞,又多了一个方便排除不关心的数据的利器!
你好,目前测试来看调用链数据很大,想屏蔽掉其中的get,set方法 ,目前有2个方案 1,通过excludes指定包来排除,但是这些方法分布在项目中到处都有,可能需要写很多,比如, excludes=/domain//:/entity//:/model//:/bean//:/dto//:/do//:/vo//:/bo//:/Param.*:/DTO.:/Dt0.:/DO.:/VO.:*/BO.* 这样怎么看都显得不太灵活, 2,把有@data注解的类全部排除,也比较麻烦 请问在这里有些什么好的方案吗