我曾多次看到 JAXRS 资源的配置方式有多种。
有时我看到它们被注释为 @Singleton
、@Stateless
、@ApplicationScoped
、@RequestScoped
,甚至没有任何注释或同时使用两者。
javax.enterprise.context.RequestScoped
javax.enterprise.context.ApplicationScoped
javax.ejb.Stateless
javax.ejb.Singleton
javax.inject.Singleton
我应该使用哪个注释?
javax.ejb 和 JAXRS 资源有什么关系?
另一方面,我还想了解如何准确使用 @Context
注释。
我的意思是,我曾经看到这个应用于参数,也应用于类字段。
@Path("entity")
public class EntityResource {
@Context
private Request request;
@POST
public Response create(Entity entity) {
this.request...
}
}
或者,
@Path("entity")
public class EntityResource {
@POST
public Response create(Entity entity, @Context Request request) {
request...
}
}
我该如何继续?