如何使用 Java 泛型为实体创建 HAL 链接

问题描述

我使用的是 Springboot v 2.3.2。

我有不同的实体类,比如 A 和 B。现在在执行 CRUD 操作后,我需要以 HAL 格式返回响应。目前我已经在每个控制器类中创建了方法。但是随着时间的推移,我可以看到这些在本质上是相似的。因此我正在考虑重构它并应用 Java 泛型。

这是一个代码片段。请指导我如何进行此更改或有其他更好的方法。

在这两种方法中,除了实体类型之外,一切都相同。

    import org.springframework.hateoas.EntityModel;
    private final RepositoryEntityLinks entityLinks;

    private EntityModel<A> generateLinks(A a) {
        EntityModel<A> resource = EntityModel.of(a);
        resource.add(entityLinks.linkToItemResource(A.class,a.getId()).withSelfRel());
        resource.add(entityLinks.linkToCollectionResource(A.class));
        resource.add(entityLinks.linksToSearchResources(A.class));
        return resource;
    }

    private EntityModel<B> generateLinks(B b) {
        EntityModel<B> resource = EntityModel.of(b);
        resource.add(entityLinks.linkToItemResource(B.class,b.getId()).withSelfRel());
        resource.add(entityLinks.linkToCollectionResource(B.class));
        resource.add(entityLinks.linksToSearchResources(B.class));
        return resource;
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)