Spring Data Rest:如何自定义" _links"财产代表?

时间:2016-07-25 09:05:02

标签: spring spring-mvc spring-data-rest spring-hateoas

我尝试自定义 Spring Data Rest JSON实体表示的" _links" 属性中链接的网址。

遵循" 16.5.3处的文档。自定义表示" (参见http://docs.spring.io/spring-data/rest/docs/current/reference/html/#_customizing_the_representation), 我应该使用我自己的 ConversionService创建自定义 Converter。但我怎么能这样做呢?

顺便说一句,我不明白我必须这样做的原因,因为Spring Data Rest使用构建URL的RepositoryEntityController来调用" toResources&#34 ; AbstractRepositoryRestController的方法,用于构建调用自己的" getDefaultSelfLink" 方法的URL。

为什么不以某种方式 @Override 这些方法中的一个(或两个)?

我的疑问是:转换器如何取代此实现的行为?它是因为在URL构造之后被调用了吗? 如果答案是肯定的,问题是转换器可以修改前一刻已经构建的URL,而我更愿意只使用我的自定义创建一次网址(而不是之后转换它。)

它有可能以任何方式吗? 如何自定义RepositoryEntityController行为

感谢。

1 个答案:

答案 0 :(得分:1)

根据here为您的实体类实施ResourceProcessor。这将允许您将自定义链接添加到给定实体类的每个Resource<>对象。如果您希望删除/修改Spring Data Rest生成的链接,则需要实现Converter,,因为ResourceProcessor在添加SDR链接之前执行。