Immagina un contesto di applicazione graduale con fasi diverse. Iniziamo con una fase iniziale per definire l'infrastruttura necessaria. I contesti dell'applicazione xml vengono caricati in sequenza.Come estendere liste e mappe già definite nel contesto di applicazione Spring?
Il motivo per suddividere questi file è un meccanismo di estensione/plugin.
Fase 01-default-configuration.xml
Prepariamo e dichiariamo la mappa con id exampleMapping
per aumentare in un secondo momento con i dati.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="[...]">
<util:map id="exampleMapping" />
</beans>
fase(opzionale)
-configuration.xml 02-custom Abbiamo configurare il exampleMapping
e aggiungere una voce.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="[...]">
<util:map id="exampleMapping">
<entry key="theKey" value="theValue" />
</util:map>
</beans>
Fase 03-make-uso-di-configuration.xml(obbligatorio)
Utilizza la mappa definita exampleMapping
, se è configurato customly o è ancora la mappa dichiarata vuota.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="[...]">
<bean id="exampleService" class="com.stackoverflow.example.ExampleService">
<property name="mapping" ref="exampleMapping" />
</bean>
</beans>
Il problema qui è, che non è possibile aggiungere voci alla mappa exampleMapping
dopo la prima fase. Spring lancia un'eccezione che la mappa con ID exampleMapping
esiste già. Se lasciamo fuori la prima fase, la mappa non è dichiarata e il terzo stadio non può risolvere exampleMapping
che produce anche un'eccezione.
Come posso risolvere questo problema? Ho letto Collection merging (documenti di primavera) ma questo non ha aiutato. È possibile aggiungere valori in seguito a mappe/elenchi prima di utilizzarli?
Grazie!
Cosa intendi per "non può essere migliorato con le voci dopo la prima fase"? – skaffman
@skaffman: Siamo spiacenti, ftfy. – codevour