3

我有使用@PUT,@POST注释的方法。如果没有这些注释,这些方法运行良好。那么这些注解有什么用呢?

@GET    
@Path ("/{stockId}")
@Produces("application/xml")
public StockDetail search(@PathParam("stockId") Integer stockId) {

    final String methodName="search";
    mLogger.debug(mClassName+"::" +methodName+"::Entered");
    StockDetail stockDetails=null;
    try {

         stockDetails = mStockBean.retrieve(stockId);
    } catch(Exception exception) {

        mLogger.error("ClassName::" +mClassName+ "MethodName::" +methodName+"Error::"+exception.getMessage());
    }
    return stockDetails;
}
4

2 回答 2

3

好吧,例如,这些注释允许您为不同的方法使用相同的路径:

@GET    
@Path ("/{stockId}")
@Produces("application/xml")

@PUT
@Path ("/{stockId}")
@Consumes("application/xml")

在这里,对于相同的路径,我们将有不同类型的请求。

UPD。根据评论,我会注意到,如果我们有方法A()并且我们将它@GET与上面声明的 Web 服务签名一起使用,那么我们在没有任何参数的情况下使用它(因为它不消耗任何请求正文)。对于第二个,我们将使用该方法A(String body),因为我们使用一些实体来处理。

于 2012-09-18T06:59:40.583 回答
2

注释提供有关程序的数据,这些数据不属于程序本身。它们对它们注释的代码的操作没有直接影响。

引用Oracle 的 Java 教程

注释有许多用途,其中包括:

  1. 编译器信息——编译器可以使用注解来检测错误或抑制警告。
  2. 编译器时和部署时处理——软件工具可以处理注释信息以生成代码、XML 文件等。
  3. 运行时处理——一些注解可以在运行时检查。

注释不会影响方法的工作

于 2012-09-18T06:35:06.197 回答