在我的应用程序中,我有一个扩展了spring-hateoas Link类的类:
class LinkWithAdditionalField extends Link {
private final String additionalField;
LinkWithAdditionalField(String href, String rel, String additionalField) {
super(href, rel);
this.additionalField = additionalField;
}
...
}这会向模型表示中添加额外的字段:
"_links" : {
"self" : {
"href": "https://example.com/...",
"additionalField": "additionalValue"
}
}它是这样使用的:
LinkWithAdditionalField link = (LinkWithAdditionalField) entityModel.getLinks().toList().get(index)
String additionalField = link.getAdditionalField();它正在工作,但是1.1版本的spring-hateoas不推荐使用Link(String, String)构造函数(并推荐使用静态方法Link.of(String, String))。
有没有推荐的方法(一些我缺少的新API?)要做到这一点,在将Spring升级到最新版本之后,允许向链接添加额外的字段吗?
使用组合(和静态方法Link.of(String, String)):
class LinkWithAdditionalField {
private final Link link;
private final String additionalField;
LinkWithAdditionalField(String href, String rel, String additionalField) {
this.link = Link.of(href, rel);
this.additionalField = additionalField;
}
...
}在我的情况下不会工作,因为类型转换:
LinkWithAdditionalField link = (LinkWithAdditionalField) entityModel.getLinks().toList().get(index)发布于 2020-12-08 22:27:13
查看org.springframework.hateoas.Link的源代码,静态方法Link.of(href, relation)只调用已弃用的构造函数Link(href, relation)。
public static Link of(String href, String relation) {
return new Link(href, relation);
}所以你可以坚持你的原始代码。
https://stackoverflow.com/questions/65200628
复制相似问题