Tengo dos archivos XML que define los granos para el Spring Framework (versión 2.5.x):Cómo modificar beans definidos en un contenedor de primavera
containerBase.xml:
<beans>
<bean id="codebase" class="com.example.CodeBase">
<property name="sourceCodeLocations">
<list>
<value>src/handmade/productive</value>
</list>
</property>
</bean>
</beans>
... y
containerSpecial.xml:
<beans>
<import resource="containerBase.xml" />
</beans>
Ahora Quiero ajustar la propiedad sourceCodeLocations
de bean codebase
dentro de containerSpecial.xml
. Necesito agregar un segundo valor src/generated/productive
.
Un enfoque simple es para anular la definición de codebase
en containerSpecial.xml
y añadir ambos valores, el de containerBase.xml
y el nuevo:
containerSpecial.xml:
<beans>
<import resource="containerBase.xml" />
<bean id="codebase" class="com.example.CodeBase">
<property name="sourceCodeLocations">
<list>
<value>src/handmade/productive</value>
<value>src/generated/productive</value>
</list>
</property>
</bean>
</beans>
¿Hay una manera de ampliar la lista sin redefinir ¿el frijol?
EDITAR 2009-10-06:
El propósito de esto es tener un contenedor estándar compartida containerBase
que es utilizado por una gran cantidad de diferentes proyectos. Cada proyecto puede anular/extender algunas propiedades que son especiales para ese proyecto en su propio containerSpecial
. Si el proyecto no sobrescribe, está usando los valores predeterminados definidos en containerBase
.
CodebaseOverrider no es exactamente lo que estoy buscando, pero con este enfoque podría escribir CodebaseListExtender fácilmente. Lo intentaré. – tangens