在Spring中,我如何在服务器端的包装器对象中接收id



我编写了一个控制器客户端方法,该方法在@PathVariable中包含一个包装器对象(自定义对象(。此包装器对象是在@CustomAnnotation内部执行基于类型的验证所必需的。

@CustomAnnotation
@PostMapping
public void save(@Valid @NotNull @PathVariable("id") Id id) {
// service calls etc.
}

包装器对象只包含Id

public class Id {
private String id;
public Id(String id) {
this.id = id;
}
public Long getId() {
// ...
}
public void setId(String id) {
this.Iid = id;
}

此客户端方法位于接口包中,可以分发给客户端。客户端通过OpenFeign调用服务器。为接口提供服务的控制器实现了这些方法。

问题:
我可以很容易地调用基于类型的方法,但服务器将对象检索为.toString((,这使得无法重建id。

如何在服务器端接收包装器对象中的原始id?

只需覆盖toString方法。这样,服务器就可以理解@PathVariable 中的对象

@Override
public String toString() {
return id;
}

最新更新