Wil*_*Dev 5 java jax-rs thread-safety
我正在寻找线程安全的 Servlet 替代方案,我发现了 JAX-RS 技术。
那么我可以像这样在它的类中使用实例变量吗(它是线程安全的):
@Path("helloworld")
public class HelloWorldResource {
private String msg;
@GET
public void doSmth() {
this.msg = "test";
}
}
Run Code Online (Sandbox Code Playgroud)
?
资源范围将默认为@RequestScope
每个请求创建一个新的资源实例。
@RequestScoped
默认生命周期(当不存在注释时应用)。在此范围内,为每个新请求创建资源实例并用于处理该请求。如果在请求处理中多次使用该资源,则始终将使用同一个实例。当资源是子资源在匹配期间返回多次时,可能会发生这种情况。在这种情况下,只有实例才会处理请求。
因此,只要msg
不是,static
就应该根据请求创建。
这也意味着在处理请求后,您将丢失资源中包含的任何状态,您想在这里解决什么用例?