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: