簡單示例
com.spy.test.hessian.User
public class User implements Serializable {
private Long userId;
private String userCode;
private String userName;
private String email;
private Integer age;
private List<String> roles;
}
List<String> roles = Arrays.asList("admin");
user = User.builder()
.userId(L)
.userCode("0001")
.userName("cc")
.age()
.roles(roles)
.build();
輸出的碼流
[, , , , , , , , , , , , , , , , , , , , , , , , , , , -, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , -, , , , , , , , , , -, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
現在對碼流進行分析,其實也是對hessian序列化的分析
:C ,代表class
, 全類類名長度
, , , com
,
, , , spy
,
, , , , test
,
, , , , , , ,:hessian
,
, , , :User
-, 類中字段個數(個字段+)
,
, , , , , , 字段名稱 userId
,
, , , , , , , , userCode
,
, , , , , , , , userName
,
, , , , , email
,
, , , age
,
, , , , , roles
, (+)是引用次數
-,
, , , , ,
, , ,
, N email字段為null
-, age=
, (+) list大小 java.util.Arrays$ArrayList
, list type大小(即java.util.Arrays$ArrayList的長度)
, , , , , , , , , , , , , , , , , , , , , , , , , , (即java.util.Arrays$ArrayList)
,
, , , , (admin)
更多的協定規範可以參考hessian2規範