Auf @Scope(„session“) Bean aus anderem Scope zugreifen – Spring

Um auf eine Bean, die mit dem @Scope(„Session“) annotiert wurde, von einem nicht Session-Scoped Bean aus zugreifen zu können, ist ein aop-proxy notwendig.


Um auf eine Bean, die mit dem @Scope(„Session“) annotiert wurde, von einem nicht Session-Scoped Bean aus zugreifen zu können, ist ein aop-proxy notwendig.

Konnte man in der Spring XML Configuration noch bequem einen Proxy mit folgenden Zeilen definieren:

<!-- a HTTP Session-scoped bean exposed as a proxy -->
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">

     <!-- this next element effects the proxying of the surrounding bean -->
     <aop:scoped-proxy/>
</bean>

Hat man aber seine Bean wie oben beschrieben komplett über Annotationen konfiguriert, ist der Weg zum Scoped-Proxy ein nicht ganz so offensichtlicher. Man muss dazu die @Scope Annotation um den proxyMode erweitern:

@Scope( value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS )

Näheres findet ihr in der Spring API unter Scope

Ähnliche Artikel:

Autor: Thomas Pummer

Thomas Pummer ist Softwareentwickler an der Universität Wien. In seiner Freizeit betreut er das Open Source Projekt TrayRSS und werkt an diversen anderen kleinen Projekten. Er ist sehr interessiert an Open Source und Webentwicklung und testet gern neue Programmiersprachen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*