为什么我们需要@ PUT,@ POST @DELETE注释?我的代码没有它们

时间:2012-09-18 06:29:02

标签: java jax-rs resteasy

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

2 个答案:

答案 0 :(得分:3)

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

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

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

在这里,我们将使用不同类型的请求。

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

答案 1 :(得分:2)

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

引自the Java Tutorial by Oracle

  

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

     
      
  1. 编译器的信息 - 编译器可以使用注释      检测错误或抑制警告。
  2.   
  3. 编译时和部署时处理 - 软件工具可以处理     用于生成代码,XML文件等的注释信息。
  4.   
  5. 运行时处理 - 可以在运行时检查某些注释。
  6.   

注释不会影响方法的工作