我正在Glassfish 3.1服务器上使用Jersey构建API,并且需要访问HttpServletRequest对象以获取某些标头,调用者的ip等等。我可以将它注入到每个API方法调用中但似乎在全球范围内更有效率。在类级别注入它是否安全,如下面的代码片段那样,或者这会引起Glassfish的某种并发问题吗?
@Path("/myapi")
@RequestScoped
public class MyApiResource {
@Context private UriInfo context;
@Context private HttpServletRequest request;
答案 0 :(得分:9)
很安全。不要使用@RequestScoped注释 - 默认情况下,JAX-RS资源是请求范围。这意味着为每个请求创建了一个新实例,因此没有并发问题。