¿Es posible anular/reemplazar el frijol abstracto principal?
Por ejemplo: 1er xml:
<bean id="inheritedTestBean" abstract="true" class="org.springframework.beans.TestBean"> </bean> <bean id="inheritsWithDifferentClass" class="org.springframework.beans.DerivedTestBean" parent="inheritedTestBean"> </bean>2do xml
<bean id="inheritedTestBean2" abstract="true" class="org.springframework.beans.TestBean2"> </bean> <alias name="inheritedTestBean2" alias="inheritedTestBean" />TestBean2 hereda TestBean.
Cualquier contexto Spring dado solo puede tener un bean para cualquier ID o nombre dado. En el caso del atributo de identificación XML, esto se impone mediante la validación del esquema. En el caso del atributo de nombre, esto lo impone la lógica de Spring.
Sin embargo, si un contexto se construye a partir de dos archivos descriptores XML diferentes, y ambos archivos utilizan una identificación, entonces uno "anulará" al otro. El comportamiento exacto depende del orden de los archivos cuando el contexto los carga.
Entonces, si bien es posible, no se recomienda. Es propenso a errores y frágil, y no obtendrá ayuda de Spring si cambia la ID de uno pero no del otro.
Incluso si pudieras hacer esto, sería muy confuso. Existe la anotación @Primary , puede echarle un vistazo. O podría echar un vistazo a los perfiles de primavera, por lo que tiene una implementación de bean predeterminada, y luego cada otro perfil hay una implementación diferente para su clase abstracta.