2010-12-21 19 views
41

Paso de una configuración de xml a las anotaciones. Quiero convertir una sesión de ámbito bean que esanotación equivalente de <aop: scoped-proxy>

<aop:scoped-proxy> 

se puede hacer esto con anotaciones, y si no, ¿qué puedo hacer para seguir manteniendo que la declaración de trabajo?

edición: Estoy interesado en hacer esto en la primavera de 2,5

Respuesta

10

en el xml contexto primavera, haga algo como:

<context:component-scan base-package="com.startup.failure" scoped-proxy="interfaces" /> 

Tenga en cuenta que necesitaría w rite interfaces para todas las clases en ese paquete, sin embargo.

82

En Spring 3.0 que puede ser especificado por el atributo proxyMode de @Scope anotación:

@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES) 
+0

proxyMode no es un campo de Scope. es esto para 3.0? – mkoryak

+1

@mkoryak yup, no está en 2.5: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/context/annotation/Scope.html pero está en 3.0: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/annotation/Scope.html –

+5

El equivalente exacto es 'ScopedProxyMode.TARGET_CLASS' –

4

En 2.5.x primavera

Si te gusta hacer en la primavera-context.xml algo así como

<context:component-scan base-package="com.startup.failure" scoped-proxy="TARGET_CLASS" /> 

Así de esta manera no necesito mis granos de proxy para implementar interfaces? (usando CGLIB no estándar JDK). No probé esto, pero creo que debería funcionar. Por supuesto que necesita tener la biblioteca cglib, la necesita con <aop:scoped-proxy> de todos modos.