为什么我们需要@PUT、@POST @DELETE注释?我的代码在没有它们的情况下工作



我有使用@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;
}

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

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

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

在这里,在相同的路径之前,我们将拥有不同类型的请求。

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

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

引用Oracle的Java教程:

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

  1. 编译器的信息 — 编译器可以使用注释 以检测错误或禁止显示警告。
  2. 编译器时和部署时处理 — 软件工具可以处理 用于生成代码、XML 文件等的批注信息。
  3. 运行时处理 — 某些注释可在运行时进行检查。

批注不会影响方法的工作

相关内容

最新更新