@PostConstruct方法一直在Jersey服务上调用

时间:2010-11-23 20:07:07

标签: jersey postconstruct

您好我正在使用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来部署。

1 个答案:

答案 0 :(得分:0)

但当然! System.out.println(“是你的朋友!”)

是的,因为@Scope(“请求”)更改为@Scope(“singleton”)会导致泽西“bean”实例化一次而不是每次请求。