AutoType调试&试验
- 可以自己写一个Junit代码试试看.
- 使用@autoType的时候,Fastjson就会自动地调用各种Getter/Setter进行初始化 ```java package Controller;
public class UserDo {
UserDo(){
System.out.println("构造方法被自动调用!");
}
private int id;
private String name;
private String password;
public String getName() {
System.out.println("getName方法被自动调用!");
return name;
}
public void setName(String name) {
System.out.println("setName方法被自动调用!");
this.name = name;
}
public int getId() {
System.out.println("getId方法被自动调用!");
return id;
}
public void setId(int id) {
System.out.println("setId方法被自动调用!");
this.id = id;
}
public String getPassword() {
System.out.println("getPassword方法被自动调用!");
return password;
}
public void setPassword(String password) {
System.out.println("setPassword方法被自动调用!");
this.password = password;
}
//一个拥有返回值的get方法
public String getTest(){
System.out.println("getTest方法被自动调用!");
return null;
}
}
```java
@Test
public void test(){
// 第一种解法(不建议):如果注释掉此行,会报错 autoType is not support. com.alibaba.middleware.DO.UserDo
// ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
// 第二种解法:将需要反序列化的类加白名单;
ParserConfig.getGlobalInstance().addAccept("com.alibaba.middleware.DO.UserDo");
String json ="{\"@type\":\"com.alibaba.middleware.DO.UserDo\",\"id\":\"123\",\"name\":\"qwertyuiop\",\"password\":\"123123\"} ";
UserDo user =(UserDo) JSON.parse(json);
// System.out.println(user.getName());
}
参考资料
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://127.0.0.1:8000/#Export 1099