¿Por qué proxy no se utiliza para autowire
No puedo encontrar ninguna razón por la cual todos los beans no son autowired por proxy. Sé que eso se debe@Transactional
las anotaciones no funcionan y verifiqué el componente autowired durante la depuración en eclipse. Por supuesto, cada componente implementa alguna interfaz y uso@Autowired
Anotaciones en relación a la interfaz. Tengo una sola configuración de aop:
<tx:annotation-driven transaction-manager="transactionManager" />
Uso JPA con hibernación, spring-mvc, spring-webflow, spring-security y spring-data. Interfaces que se extiendeorg.springframework.data.repository.CrudRepository
son autowired por el proxy. Pero mis componentes no lo son. Por ejemplo tengo claseMyClass
cual implementoMyInterface
:
@Service
public class MyClass implements MyInterface {
@Autowired
MyCrudReposiotry reposiotry;
....
}
Si autowire MyInterface en algún lugar:
@Autowired
MyInterface mi;
entoncesmi
es solo una referencia aMyClass
objeto, repositorio es refrence a proxyorg.springframework.aop.framework.JdkDynamicAopProxy
. Muy interesante es que en las pruebas.mi
Es referencia al proxy. El contexto de mi prueba no contiene el flujo web y la configuración mvc.
Tal vez hay alguna configuración indirecta de aop que debería comprobar. ¿Qué puede desactivar el autowiring por proxy?