1

我想创建一个端点,它具有PathParam自动调用要注入对象的构造函数的端点,该端点具有 String 参数的构造函数。用代码拼写出来:

这是资源

@GET
@Path("/{apiVersion}" + "/item")
public Response version(@PathParam("apiVersion") APIVersion apiVersion) {
    return Response.ok().build();
}

我希望在调用 APIVersion 构造函数时自动使用字符串。在APIVersion课堂上

public APIVersion(String apiVersion) {
   this.versionString = apiVersion;
}

是否可以仅访问注释?我无权访问ResourceConfig.

4

1 回答 1

3

是的,这是可能的,除了 之外没有任何注释@PathParam,因此您给出的示例应该按原样工作。请参阅https://jersey.github.io/documentation/latest/jaxrs-resources.html#d0e2271(强调我的):

通常,方法参数的 Java 类型可能:

  1. 是原始类型;

  2. 有一个接受单个 String 参数的构造函数;

  3. 有一个名为 valueOf 或 fromString 的静态方法,它接受单个 String 参数(例如,参见 Integer.valueOf(String) 和 java.util.UUID.fromString(String));

  4. 有一个 javax.ws.rs.ext.ParamConverterProvider JAX-RS 扩展 SPI 的注册实现,它返回一个 javax.ws.rs.ext.ParamConverter 实例,该实例能够对该类型进行“来自字符串”的转换。或者

  5. 是 List、Set 或 SortedSet,其中 T 满足上述 2 或 3。生成的集合是只读的。

于 2017-08-18T04:52:46.583 回答