2016-06-26 12 views
0

Ich möchte eine Liste von Paaren von Benutzern in Spring MVC-Anwendung speichern. Die Liste kann von jedem Benutzer aufgerufen und geändert werden (Paare können gelöscht werden, neue können hinzugefügt werden). Ich möchte diese Liste nicht als Tabelle in einer Datenbank speichern, da ich erwarte, dass während der Ausführung der Web-App viele Benutzerpaare gebildet werden, und diese Prozedur sollte häufig durchgeführt werden. Ich entschied, dass diese Liste ein Feld einer Singleton-Spring-Bean (zum Beispiel ListHolder) ist, die mit verschiedenen Controllern verdrahtet ist. Aufgrund der Tatsache, dass ich im Frühling neu bin, ist meine Sorge eine mögliche Wettlaufsituation, die auftreten kann, wenn viele Benutzer die App gleichzeitig benutzen. Wie kann ich meine Liste vor solchen Situationen schützen? Ist es die richtige Art, Daten in der Frühlings-App zu speichern? Was sind die besten Praktiken?Teilen von Sammlungen mit Spring Singleton Bohnen

P.S. Wenn ich ein Paar hinzufügen möchte, benutze ich einfach die List.add-Methode. Beim Löschen kopiere ich zuerst die gesamte Liste, durchlaufe sie dann (Kopie), lösche die benötigten, ändere den Listenverweis.

+0

Verwenden Sie eine gleichzeitige Sammlung –

Antwort

0

Sie können CopyOnWriteArrayList verwenden. Es schützt Ihre Liste vor Multithreading.

Verwandte Themen