您好我正在使用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来部署。
答案 0 :(得分:0)
但当然! System.out.println(“是你的朋友!”)
是的,因为@Scope(“请求”)更改为@Scope(“singleton”)会导致泽西“bean”实例化一次而不是每次请求。