2010-11-23 85 views
3

您好我正在使用GigaSpaces XAP,它基本上使用Spring和ApplicationContext来完成它的所有init和config等操作。在加载Web应用程序的某个时间点“缓存”或者他们所称的空间代理被实例化并通过ServletContext使其可用。这个空间代理允许你写入和读取集群缓存。@PostConstruct方法所有的时间都在Jersey服务上调用

所以我最初做的是在每个REST方法上获得空间。所以......

@GET 公共字符串myMethod的(){ 空间 =(GigaSpace)context.getAttribute( “MySpace” 的); space.write(new HelloWorld()); space.read(....); 等... 返回“Hello World!”; }

由于空间本身是线程安全的,因此我被GigaSpaces人员指示在我的“应用程序”初始化时查找一次空间,这样我就可以节省查找的空间。

所以我看着@PostConstrust,我没有...

@PostConstruct 公共无效的init(){ 空间 =(GigaSpace)context.getAttribute( “MySpace” 的); }

但是,似乎这个方法正在我所做的每个请求上调用!这是否意味着我为每个请求创建了REST服务?是因为我在使用@Scope(“请求”)?

如果它帮助servlet容器是Jetty 7.1.4,并且我使用标准的WAR进行部署。

+0

如果您有权访问logs/console,则在bean构造函数中引发一个打印 – 2010-11-23 20:11:08

回答

0

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

是的,这是因为@Scope(“request”)更改为@Scope(“singleton”)导致球衣“bean”实例化一次,而不是每个请求。

相关问题