迁移构建器到Spring hateoas 2.6.7



我在hateoas:1.0中实现了这段旧代码

public class StaticPathLinkBuilder extends LinkBuilderSupport<StaticPathLinkBuilder> {
@Override
protected StaticPathLinkBuilder createNewInstance(UriComponentsBuilder builder) {
return new StaticPathLinkBuilder(builder);
}

我更新了我的代码到hateoas 2.6.7,但代码是这样改变的:

public class StaticPathLinkBuilder extends LinkBuilderSupport<StaticPathLinkBuilder> {
@Override
protected StaticPathLinkBuilder createNewInstance(UriComponents components, List<Affordance> affordances) {
return null;
}

实现这一变化的正确方法是什么?我试过了:

@Override
protected StaticPathLinkBuilder createNewInstance(UriComponents components, List<Affordance> affordances) {
return new StaticPathLinkBuilder(UriComponentsBuilder.newInstance().uriComponents(components));
}

但是我不清楚如何实现我可以发送affordances的代码。

你能建议什么是正确的方法来实现这一点吗?

您可以在其源代码中看到,LinkBuilderSupport已经提供了一个构造函数,其中包含两个必需的参数,UriComponentsList<Affordance>

在自己的库代码库中,不同的LinkBuilder实现,如BasicLinkBuilderTemplateVariableAwareLinkBuilderSupport,已经在其实现中利用了这一事实。

在您的用例中,您可以尝试这样做:

public class StaticPathLinkBuilder extends LinkBuilderSupport<StaticPathLinkBuilder> {
private StaticPathLinkBuilder(UriComponents components, List<Affordance> affordances) {
super(components, affordances);
}
@Override
protected StaticPathLinkBuilder createNewInstance(UriComponents components, List<Affordance> affordances) {
return new StaticPathLinkBuilder(components, affordances);
}
}

最新更新