JBoss.orgCommunity Documentation

第 13 章 改进的 @…Param 注解

自从 Java 8以来,字节码中增加了参数名称,不再需要用户在以下注解中指定参数名称:@PathParam, @QueryParam, @FormParam, @CookieParam, @HeaderParam@MatrixParam。为了从这个特性中获益,您必须切换到具有相同名称的不同包中的新注解,这些注解有一个可选的值参数。要使用它,请遵循以下步骤:

注意,可以省略带注解的方法参数以及带注解的字段或 JavaBean 属性的注解名称。

对于 Maven 用户,可以通过将 maven.compiler.parameters 设置为 true 来启用字节码中的记录方法参数名称:

    <properties>
        <maven.compiler.parameters>true</maven.compiler.parameters>
    </properties>

用例:

import org.jboss.resteasy.annotations.jaxrs.*;

@Path("/library")
public class Library {

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam String isbn) {
      // search my database and get a string representation and return it
   }
}

如果带注解的变量与 path 参数的名称不同,仍然可以指定名称:

import org.jboss.resteasy.annotations.jaxrs.*;

@Path("/library")
public class Library {

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") String id) {
      // search my database and get a string representation and return it
   }
}