Spring 3 @Service

Diskutiere Spring 3 @Service im Application Tier Forum; Hallo Community, Ist eine Klasse, die mit @Service annotiert ist, serverweit nur einmalig instanziiert (sozusagen wie Singleton bei den Beans)?...

  1. freez
    freez Neues Mitglied
    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 hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. mvitz
    mvitz Aktives Mitglied
    4. The IoC container

    Und ja, wenn du nichts weiteres angibst, dann ist Singleton sozusagen der Default Scope von Spring
     
  4. freez
    freez Neues Mitglied
    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. mvitz
    mvitz Aktives Mitglied
    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. freez
    freez Neues Mitglied
    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. mvitz
    mvitz Aktives Mitglied
    Wenn du von mehreren Threads auf diesen Service (als Singleton) zugreifst (und modifizierst), dann musst du dich vermutlich schon um synchronisierung kümmern.
     
  8. freez
    freez Neues Mitglied
    Na dann wird der Einsatzbereich immer kleiner :(. Ist ja einiges, was da beachtet werden muss. Aber danke für die Infos.
     
Die Seite wird geladen...

Spring 3 @Service - Ähnliche Themen

Allgemeine Architekturfrage: REST API, Job Queue, Thread Pool unter Spring Kontrolle
Allgemeine Architekturfrage: REST API, Job Queue, Thread Pool unter Spring Kontrolle im Forum Allgemeines EE
Suche Tutorial für - Spielfiguren springen lassen
Suche Tutorial für - Spielfiguren springen lassen im Forum Bücher, Tutorials und Links
Spring-Boot und Spring Data Programmstart zu langsam
Spring-Boot und Spring Data Programmstart zu langsam im Forum Datenbankprogrammierung
Spring Security für Java SE
Spring Security für Java SE im Forum Allgemeine Java-Themen
Springen an Seitenanfang verhindern
Springen an Seitenanfang verhindern im Forum Für Verirrte - Fragen zu JavaScript
Thema: Spring 3 @Service