嗨,我正在使用 GigaSpaces XAP,它基本上使用 Spring 和 ApplicationContext 来完成它的所有初始化和配置等......在加载 Web 应用程序期间的某个时间点,“缓存”或他们所谓的空间代理被实例化并通过 ServletContext 提供。这个空间代理允许您在集群缓存中写入和读取。
所以我最初做的是在每个 REST 方法上获得空间。所以...
@GET
public String myMethod()
{
space = (GigaSpace)context.getAttribute("mySpace");
space.write(new HelloWorld());
space.read(....);
etc...
return "Hello World!";
}
由于空间本身是线程安全的,GigaSpaces 人员指示我在我的“应用程序”初始化时查找空间,这样我就可以节省空间查找。
所以我调查了@PostConstruct
我在哪里做的......
@PostConstruct
public void init()
{
space = (GigaSpace)context.getAttribute("mySpace");
}
但似乎我提出的每个请求都会调用此方法!这是否意味着正在为我提出的每个请求创建我的 REST 服务?是因为我在用@Scope("request")
吗?
如果它帮助 servlet 容器是 Jetty 7.1.4,我正在使用标准 WAR 进行部署。