2010-11-23 81 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」實例化一次,而不是每個請求。

相關問題