Vous pouvez inclure une partie de votre configuration dans le projet de bibliothèque de classes en tant que fichier de ressources incorporé. Disons que vous l'appelez LibraryConfig.xml. Ensuite, dans le fichier de configuration de l'application de votre exécutable, vous incluez la ressource incorporée en utilisant le préfixe assembly:
. Voici un exemple:
<spring>
<context type="Spring.Context.Support.XmlApplicationContext, Spring.Core">
<resource uri="assembly://FooLibrary/FooLibrary/LibraryConfig.xml"/>
<resource uri="config://spring/objects" />
</context>
<objects xmlns="http://www.springframework.net">
<object id="mainForm" type="FooApp.MainForm, FooApp">
<!-- mainController is some object defined in LibraryConfig.xml -->
<property name="Controller" ref="mainController"/>
</object>
</objects>
</spring>
Si votre application principale n'a pas besoin d'utiliser Spring lui-même, je pense que vous pouvez configurer l'ensemble du contexte d'application dans la bibliothèque. Incorporer le fichier de configuration comme décrit ci-dessus, puis définir un objet singleton pour contenir le contexte de l'application et le charger à partir du fichier de configuration intégré. Enfin, vous devez définir un certain type de méthodes d'usine pour le code client avec lequel créer vos classes. Les méthodes d'usine peuvent soit aller sur le singleton lui-même (probablement en utilisant des génériques), ou avoir une méthode d'usine distincte sur chaque classe qui doit être instanciée. Ces méthodes d'usine font les demandes réelles du contexte de l'application et le code client ne le voit jamais.
donc tous les paramètres de configuration de printemps doivent s'asseoir dans le fichier de configuration de l'exécutable? – AndyMM