在泽西岛级,哪个更适合这两个:
@PathParam(“service-id”)private String serviceId;
public Response subscribe(@PathParam(“service-id”)String serviceId){}
我只使用第一个,因为几乎所有的方法都需要service-id
。但是,我的一位同事对这种方法发表了评论,最终Jersey类基于servlet和servlet不应该有状态变量。
我在JSR-311 java docs读到了这个
由于注入发生在对象创建时,因此仅对默认的每请求资源类生命周期支持在资源类字段和bean属性上使用此批注。使用其他生命周期的资源类应仅在资源方法参数上使用此注释。
因为在webapp中,我的Jersey类将遵循每个请求的资源类生命周期,我觉得第一种方法是安全的。想请:)
由于仅在请求范围中允许此注释(因此每个请求都获得其自己的bean / resource实例且没有共享状态),因此它是安全的。
不过,我可能会给每个方法提供完整的参数集,即使它有点重复。让您更容易一目了然地看到发生了什么。这是一个代码风格问题,人们可以在这里有不同的意见。
这只是编码样式问题,因为此代码具有完全相同的结果。我也更喜欢在方法中定义它,而不是在实例中定义它。
无论如何,一旦编译,结果是一样的! :)