Referenzen weiterreichen vs. statischer Zugriff

Status
Nicht offen für weitere Antworten.

deamon

Bekanntes Mitglied
Ich arbeite gerade an einer Wicket-Anwendung, in der ich in vielen Komponenten auf die Session zugreife. Es gibt eine statische Methode get() der Klasse Session, die einem die jeweilige Session liefert. Nun könnte ich einmal mit dieser Methode das Session-Objekt am Einstiegspunkt des Nutzers holen und dann von Komponente zu Komponente reichen. Oder ich könnte mir das Herumreichen sparen und überall dort, wo ich die Session brauche, direkt die statische Methode aufrufen.

Als Vorteil vom Herumreichen sehe ich, dass von außen erkennbar ist, dass ein Session-Objekt benötigt wird und dass man nicht alle möglichen Komponenten an eine statische Methode kettet. Nachteil ist der Aufwand für das Herumreichen. Man könnte natürlich auch einfach Spring nehmen und die Session dort injizieren, wo sie gebraucht wird. Wie würdet ihr das machen? Und was seht ihr noch für Vor- und Nachteile?
 

deamon

Bekanntes Mitglied
Spring ist hier nur in der Theorie eine schöne Alternative. Ich habe die Session-Klasse als Spring-Bean deklariert und die statische get-Methode der Session-Klasse in der Spring-Konfiguration als Factory-Methode angegeben. Soweit so gut, doch funktioniert das nicht, weil die Session nur im Kontext eine Anfrage erreichbar ist:

"java.lang.IllegalStateException: you can only locate or create sessions in the context of a request cycle"

Nachtrag:

Die Lösung ist doch ziemlich einfach und auch nicht unelegant, wie ich finde.

Java:
public class SessionProxy {
	public MySession getSession(){
		return MySession.get();  // Aufruf der statischen get-Methode
	}
}

Die Klasse wird als ganze normale Spring-Bean deklariert und überall dort injiziert, wo man eine Wicket-Session braucht. Man kapselt mit dieser Klasse also den statischen Methodenaufruf.
 
Zuletzt bearbeitet:

tfa

Top Contributor
Warum willst du überhaupt irgendetwas statisch machen? Mit DI ist das doch völlig überflüssig.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Best Practice Wie viele Referenzen machen Sinn? Weniger ist mehr? Allgemeine Java-Themen 1
J Mit Referenzen verkettet Listen. Allgemeine Java-Themen 9
A Referenzen von Bildobjekten löschen Allgemeine Java-Themen 0
kaoZ Best Practice Shared Actions , Referenzen in Gui halten ? Allgemeine Java-Themen 25
K Referenzen finden Allgemeine Java-Themen 6
R Referenzen im Heap anzeigen Allgemeine Java-Themen 3
M Datentypen Referenzen oder seperate IDs vergleichen? Allgemeine Java-Themen 6
D Problem mit Referenzen beim Serialisieren Allgemeine Java-Themen 3
W n:m Beziehung Referenzen löschen Allgemeine Java-Themen 5
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
E EMF Ecore Modell. Referenzen nach außen. Allgemeine Java-Themen 2
F Referenzen auf Objekte Allgemeine Java-Themen 5
hdi Speichergröße von Objekten & Referenzen Allgemeine Java-Themen 8
S Serialisierung und Referenzen Allgemeine Java-Themen 6
D Referenzen; == Allgemeine Java-Themen 2
G Pointer und Referenzen Allgemeine Java-Themen 3
I Referenzen in Datei speichern Allgemeine Java-Themen 2
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
J Bibliothek gesucht Ana_lysieren von wss. Referenzen Allgemeine Java-Themen 2
A ArrayListe :Doppelte entfernen -> keine Referenzen Allgemeine Java-Themen 26
O Vektor kopieren (Inhalt, nicht Referenzen) Allgemeine Java-Themen 3
M Übergabe von Referenzen Allgemeine Java-Themen 3
H Referenzen statt Objekte für große Speicherstrukturen Allgemeine Java-Themen 19
P Das leidige Thema: Referenzen Allgemeine Java-Themen 2
N int[] referenzen in ein Array packen, brauche Hilfe. Allgemeine Java-Themen 7
A Referenzen / HashCodes nicht konstant? Allgemeine Java-Themen 2
K Probleme mit Referenzen Allgemeine Java-Themen 2
C event weiterreichen Allgemeine Java-Themen 3
Zrebna Limitierungen statischer Codeanalyse? Allgemeine Java-Themen 19
S "Vererben" statischer Felder/Methoden Allgemeine Java-Themen 4
G Synchronisation nicht statischer Methoden Allgemeine Java-Themen 4
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4
T Polymorphie Statischer Methodenaufruf einer Kindsklasse Allgemeine Java-Themen 4
Eldorado Barcodes mit statischer Breite generieren Allgemeine Java-Themen 3
M Konstruktor / statischer Block Allgemeine Java-Themen 13
S Enums - statischer import Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben