本文主要是介绍Spring Data Rest学习篇----Object Representation (实体对象展现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Spring Data Rest---Object Representation(实体对象展现)
对应spring-data-rest-reference 的第7章
在HTTP请求中,Spring Data Rest为一个请求返回一个指定数据格式的对象,目前,Spring Data Rest只支持JSON格式数据,在未来也可以支持其他格式的数据展现。如果用户发现对象模型没有正确地转换到JSON数据,那么你可以有很多种方法结构化你的数据。
在Jackson的ObjectMapper中添加自定义的序列化和反序列化工具,为了容纳最大比例的用户事例,Spring Data Rest尽量正确地渲染对象模型,必要的时候,它会为管理到的bean对象创建链接,而且会序列化没有被管理的bean,作为普通的Java对象。
例子:抽象类注册bean
在一个实体类中使用到了抽象类的对象作为属性,Jackson默认是不识别此抽象类的具体实现类。
@Entity
public class MyEntity {@OneToManyprivate List<MyInterface> interfaces;
}
可以通过两种方式去实现抽象类的子类实现选择,
1.第一种方式
@Override
protected void configureJacksonObjectMapper(ObjectMapper objectMapper) {objectMapper.registerModule(new SimpleModule("MyCustomModule") { @Override public void setupModule(SetupContext context) {
context.addAbstractTypeResolver(
new SimpleAbstractTypeResolver().addMapping(MyInterface.class,
MyInterfaceImpl.class)
);
}
});
}
2.第二种方式
@Override
public void setupModule(SetupContext context) {SimpleSerializers serializers = new SimpleSerializers();SimpleDeserializers deserializers = new SimpleDeserializers();serializers.addSerializer(MyEntity.class, new MyEntitySerializer());deserializers.addDeserializer(MyEntity.class,new MyEntityDeserializer());context.addSerializers(serializers);context.addDeserializers(deserializers);
}
这篇关于Spring Data Rest学习篇----Object Representation (实体对象展现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!