Spring 3 @Service

Dieses Thema Spring 3 @Service im Forum "Application Tier" wurde erstellt von freez, 24. Sep. 2012.

Thema: Spring 3 @Service Hallo Community, Ist eine Klasse, die mit @Service annotiert ist, serverweit nur einmalig instanziiert (sozusagen...

  1. Hallo Community,

    Ist eine Klasse, die mit [c]@Service[/c] annotiert ist, serverweit nur einmalig instanziiert (sozusagen wie Singleton bei den Beans)?

    Wenn ja, muss ich mir da irgendwelche Gedanken wegen der Synchronisierung machen, wenn ich z.B. sowas machen würde:
    Code (Java):
        List <Auftrag> auftraege = null;
       
        public List <Auftrag> getAuftraege(){
            if(auftraege == null)
                auftraege = loadFromDB();
            return auftraege;
        }
       
        public void saveAuftrag(Auftrag auftrag){
            saveAuftrag2DB(auftrag);
            auftraege = null;
        }
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. 4. The IoC container

    Und ja, wenn du nichts weiteres angibst, dann ist Singleton sozusagen der Default Scope von Spring
     
  4. D.h. für Services kann ich auch Scopes vergeben? Muss ich da was beachten wegen Zugriffen von mehreren Session Beans (synchronize)?

    [EDIT]Übrigens kenne ich das Dokument bzgl. IoC Container bereits, hat mir aber nicht wirklich eine Antwort geliefert (vielleicht liegts auch an meinem Englisch)[/EDIT]
     
    Zuletzt bearbeitet: 24. Sep. 2012
  5. Ja kannst du, siehe: Scope

    Der Auszug, den du gepostet hast, sieht jedoch etwas seltsam aus, wieso lädst du die Daten nur einmal aus der Datenbank und nicht jedesmal?
     
  6. Das ist jetzt nur mal ne Idee gewesen für Datenbankabfragen, die doch etwas länger dauern. Wenn ich immer über den gleichen Singleton Service gehe, dann weiß ich ja, ob sich was geändert hat und kann dann gezielt die Daten neu laden (sozusagen gezieltes Cachen). Zusätzlich würde ich da noch einen Zeitstempel einbauen, an dem die Liste ungültig wird. Aber ob ich das wirklich so einsetze weiß ich noch nicht genau.

    Deswegen nochmal die Frage: muss ich hier mit "synchronize" oder "ConcurentModifi...List" arbeiten?
     
  7. Wenn du von mehreren Threads auf diesen Service (als Singleton) zugreifst (und modifizierst), dann musst du dich vermutlich schon um synchronisierung kümmern.
     
  8. Na dann wird der Einsatzbereich immer kleiner :(. Ist ja einiges, was da beachtet werden muss. Aber danke für die Infos.
     
  9. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!