【发布时间】:2015-03-23 23:35:54
【问题描述】:
我已经创建了一个 Spring Data Rest 投影(不是摘录投影),并且只需要向它添加一些链接,因为这些链接对于同一实体的其他投影或实体本身没有意义。
据我所知,我们如何使用ResourceProcessor 来做到这一点我只能添加到实体的链接,是否可以仅为该投影添加链接?
【问题讨论】:
标签: spring-data spring-data-rest
我已经创建了一个 Spring Data Rest 投影(不是摘录投影),并且只需要向它添加一些链接,因为这些链接对于同一实体的其他投影或实体本身没有意义。
据我所知,我们如何使用ResourceProcessor 来做到这一点我只能添加到实体的链接,是否可以仅为该投影添加链接?
【问题讨论】:
标签: spring-data spring-data-rest
似乎可以只创建一个专用于投影的ResourceProcessor,我可以为每个投影创建一个ResourceProcessors,一个为实体本身创建一个,它们会根据URL中提到的投影而被调用。
@Component
public class UserProjectionResourceProcessor
implements ResourceProcessor<Resource<UserProjection>> {
public static final String CANCEL_REL = "cancel";
@Autowired
private EntityLinks entityLinks;
@Override
public Resource<UserProjection> process(Resource<UserProjection> resource) {
UserProjection userProjection = resource.getContent();
resource.add(entityLinks.linkFor(User.class).withRel(CANCEL_REL));
return resource;
}
}
【讨论】:
UserProjection 用于演示目的,因为您不能将Link 添加到投影界面。只能将Links添加到resources