gpt4 book ai didi

java - Jersey @PathParam 在实例级别与方法级别

转载 作者:行者123 更新时间:2023-11-30 07:01:02 25 4
gpt4 key购买 nike

在 Jersey 类中,两者哪个更合适:

  1. 在实例变量上

@PathParam("服务编号")私有(private)字符串 serviceId;

  1. 关于方法参数

public Response subscribe(@PathParam("service-id") String serviceId){}

我使用第一个只是因为 service-id 是我几乎所有方法所必需的。然而,我的一位同事对这种方法发表了评论,最终 Jersey 类基于 servlet,而 servlet 不应该有状态变量。

我在 JSR-311 java docs 中读到过这个

Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles should only use this annotation on resource method parameters.

由于在网络应用程序中,我的 Jersey 类将遵循每个请求的资源类生命周期,我觉得第一种方法是安全的。请思考:)

最佳答案

由于仅在请求范围内允许此注解,它变得安全(这样每个请求都有自己的 bean/资源实例,并且没有共享状态)。

不过,我可能会为每个方法提供完整的参数集,即使它有点重复。让您更容易一目了然地了解正在发生的事情。不过,这是一个代码风格问题,人们可以在这里有不同的意见。

关于java - Jersey @PathParam 在实例级别与方法级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30093827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com