新建web工程,加入jax-rs的JAR包
新建一个类
在全局变量上使用@QueryParam和DefaultValue注解,jax-rs可以自动注入值
部署并运行
http://localhost:8080/rest/services/UserContext?org=TestORG
会打印出全局变量,同时也会打印出i的值,i为1
再运行一次
http://localhost:8080/rest/services/UserContext?org=TestORG
i的值还是1
验证了第一句结论:
所以默认情况下 rest服务的生命周期 == request的生命周期,请求过后立即消毁,所以默认情况下rest服务类是线程安全的
如果你需要使用单例来发布,jax-rs提供了注解@Singleton
加入Singleton注解以后,再重启运行
i的值就会不停累加
所以这时rest服务的生命周期 == 应用服务器生命周期
另外还有一种生命周期就是@PerSession,每一个session请求,就产生一个rest资源实例,直到这个session消毁,这个rest资源才会消失。
所以
rest有三种生命周期,三种周期分别等于request,session,applcation的生命周期

本文介绍如何在 Java Web 工程中利用 JAX-RS 构建 RESTful 服务,并通过实例演示了服务类的不同生命周期,包括与每次请求对应的默认生命周期、单例模式下的应用生命周期以及与 HTTP 会话相关的生命周期。

141

被折叠的 条评论
为什么被折叠?



