Tengo una pregunta sobre el escaneo de componentes y el uso de una definición de bean adicional en la configuración XML para la misma clase de servicio en Versión de primavera 3.0.5.RELEASE.¿Comportamiento del resorte al mezclar escaneo de componentes y definición de beans XML para la misma clase?
creé una clase "MyService" anotado con
@Service("myService")
y no hay una definición de frijol para la misma clase que tiene este aspecto:
<bean id="myService" class="....MyService" />
pongo un
System.out.println("MyService has been instantiated");
mensaje en el constructor de la clase MyService. Ese mensaje se mostrará en la consola solo una vez, cuando se inicie mi aplicación. Spring parece lo suficientemente inteligente como para detectar que solo puede haber una instancia de esa clase con el id "myService".
Pero incluso cuando cambio la anotación a
@Service("myService2")
y dejo la definición de frijol xml id para "myService", la clase sólo se pueden crear instancias de una vez.
Mis dos preguntas son:
pesar de que es el comportamiento que en la actualidad que quiero, es que posible mezclar XML de definición de frijol y escaneo componente para una clase, para que se crea una instancia dos veces con diferentes ID de Bean?
¿Alguien sabe cuál es el mecanismo "detrás de escena" en Spring? ¿Cómo decide Spring cuándo crear una instancia de una clase solo una vez? (Tal vez es sólo que no deja que se mezcle la exploración y definición de frijol componente XML para la misma clase?)
muchas gracias por su ayuda!