Un poco de historia:Cómo reemplazar el comportamiento de la primavera @Autowired
estoy utilizando Spring 2.5, y en concreto la primavera COI y anotaciones.
estoy usando @Autowired
en mi código (el Autowiring se realiza por tipo) y utilizar @Component
para exponer clases para el cableado automático.
La situación que se describe a continuación surgió mientras traté de probar mi código.
ahora al problema:
Nota: Yo uso un Contexto de primavera diferente para el entorno de prueba.
tengo una clase FOO
que es @Autowired
pero en el contexto de prueba I desea utilizar una clase diferente del mismo tipo MockFoo
(se extiende FOO
).
La configuración de la primavera, por supuesto, no de forma automática debido a las múltiples opciones para la inyección de dependencia de la clase FOO
(tanto FOO
y MockFOO
cumplir con la verificación de Tipo).
Estoy buscando una forma de inyectar el frijol de prueba en lugar del frijol original.
Esperaba que Spring permitiera usar el archivo de configuración Context para anular una inyección de bean o pedir a Spring que no se autoenlace un bean específico.
PERO
Todas estas opciones parece que existe sólo para los granos que se definieron originalmente en el archivo de configuración Contexto primavera.
esta es una buena solución cuando no se tiene la misma instancia inyectada a múltiples clases - pero en un gran proyecto en el que actúa una clase como proveedor de servicios (es un singleton) y se inyecta a muchas clases, espero que haya alguna solución más fácil/mejor para evitar inyectar a cada clase que use la respuesta original – Mark