2016-05-03 14 views
0

Ich habe einen Controller für die Sitzungsbereichsgrenze mit einem statischen Feld und möchte, dass er auf diese Sitzungsinstanz beschränkt ist, sodass ich auf das Feld von anderen Klassen innerhalb der Sitzung zugreifen kann, aber nicht mit anderen Instanzen geteilt werden soll laufen in der gleichen JVM.Ist es möglich, ein statisches Feld unter Instanzen in Java Spring nicht zu teilen?

Ist es möglich, eine Kopie dieses Feldes für jeden Client in derselben JVM zu haben?

@Controller 
@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES) 
public class WebController { 
    public static MyClass = new MyClass(); 

... 
} 

Antwort

1

Lassen Sie die statische fallen.

Setzen Sie dieses Feld in eine sitzungsspezifische Bean und injizieren Sie es dort, wo Sie darauf zugreifen müssen.

Oder noch einfacher, mache MyClass selbst zu einer sitzungsspezifischen Bean und injiziere sie dort, wo du darauf zugreifen musst.

Statische Felder sind böse.

+0

Danke, ich werde die Klasse injizieren. Ich werde von nun an versuchen, statische Felder zu vermeiden – detoro84