2010-11-23 6 views
3
Hi Ich benutze GigaSpaces XAP, die im Wesentlichen Spring und ApplicationContext zu tun, es ist alles init und Config etc ... Zu einem bestimmten Zeitpunkt während des Ladens der Web-Anwendung ein "Cache" oder was sie einen Space-Proxy nennen, wird instanziiert und über den ServletContext verfügbar gemacht. Dieser Space-Proxy ermöglicht das Schreiben und Lesen von und aus dem Cluster-Cache.

@PostConstruct-Methode die ganze Zeit auf Jersey-Service

Also was ich zuerst getan habe, war, den Platz auf jeder REST-Methode zu bekommen. So ...

@ abrufen public String myMethod() { space = (GigaSpace) context.getAttribute ("mySpace"); space.write (neues HelloWorld()); space.read (....); etc ... zurück "Hallo Welt!";

Da der Speicherplatz selbst threadsicher ist, wurde ich von den GigaSpaces-Jungs angewiesen, den Space einmal auf der Init meiner "Anwendung" nachzuschlagen, damit ich beim Nachschlagen des Space sparen kann.

So schaute ich in @PostConstrust, wo ich ...

tat

@PostConstruct public void init() { space = (GigaSpace) context.getAttribute ("mySpace"); }

Aber es scheint, dass diese Methode bei jeder Anfrage aufgerufen wird, die ich mache! Bedeutet dies, dass mein REST-Service für jede Anfrage, die ich erstelle, erstellt wird? Liegt es daran, dass ich @ Scope ("Anfrage") verwende?

Wenn es hilft Der Servlet-Container ist Jetty 7.1.4 und ich verwende Standard-WAR zu implementieren.

+0

Wenn Sie Zugriff auf Protokolle/Konsole haben, werfen Sie einen Ausdruck im Bean-Konstruktor –

Antwort

0

Aber natürlich! System.out.println ("Ist dein Freund!")

Und ja es ist wegen @Scope ("Anfrage") zu @Scope wechseln ("Singleton") bewirkt, dass das Trikot "Bean" einmal statt instanziert auf Anfrage.