我有使用@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教程:
批注有许多用途,其中包括:
- 编译器的信息 — 编译器可以使用注释 以检测错误或禁止显示警告。
- 编译器时和部署时处理 — 软件工具可以处理 用于生成代码、XML 文件等的批注信息。
- 运行时处理 — 某些注释可在运行时进行检查。
批注不会影响方法的工作