我目前正在原型设计中,将我们应用程序的基于GWT-RPC的后端替换为基于REST的API,在前端使用RestyGWT,在后端使用SpringMVC。
我的问题发生在Java<->两个框架都试图自动解决的JSON类型转换。我们所有的数据对象都使用私有字段,并且许多字段不提供javabean风格的setter方法。默认情况下,两个框架都不会检查类的私有字段,因此此转换失败。
对于SpringMVC来说,通过向数据对象添加一个注释来修复这个问题已经足够简单了:
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
对于RestyGWT,我还没有找到合适的修复程序。我找到的唯一可用的解决方法是使用对所有字段和构造函数的默认访问权限,这远非理想。有人有一个解决方案可以让RestyGWT检查Java对象的私有字段吗?
尝试在字段上使用@JsonProperty和@JsonCreator(如果两者都是必要的,请不要记住)。
public abstract class Parent
{
@JsonCreator
public Parent(@JsonProperty("name") String name)
{
this.name = name;
}
public String getName()
{
return name;
}
private String name;
}