Den*_*zke 4 spring-mvc spring-data-rest spring-hateoas
我想在Spring Data REST Repository中创建一个资源链接.我知道我们可以使用ControllerLinkBuilder.linkTo方法创建到MVC控制器的链接.据我所知,Spring Data REST从我们的Repository接口创建了MVC控制器.但是,如果我使用
Instance createdInstance = instanceRepository.save(instance);
Link link = linkTo(InstanceRepository.class).slash(createdInstance.getId()).withSelfRel();
Run Code Online (Sandbox Code Playgroud)
创建链接,我只是得到http://localhost:8080/2(没有存储库路径).如果我@RepositoryRestResource在存储库中明确指定路径,则不会发生任何变化.
当然我可以明确地创建链接,但我不想重复自己.
public interface InstanceRepository extends CrudRepository<Instance, Long> {
}
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题而不必违反DRY原则的任何建议?
Den*_*zke 11
通过Spring Data REST源代码搜索,我找到了RepositoryEntityLinks类,它在框架中使用.它有一个非常讨厌的构造函数,但(至少在我的项目中)我能够@Autowire上课.
简而言之,以下代码可以解决问题.尽管如此,我很高兴听到另一个人对此有更多的教育意见!
Link link = entityLinks.linkToSingleResource(InstanceRepository.class, 1L);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3212 次 |
| 最近记录: |