2009-05-14 5 views
2

Je suis sûr que la question ci-dessus a une réponse simple mais je ne pouvais pas trouver facilement (ni dans la documentation ni sur stackoverflow.com)Comment puis-je configurer Spring BeanFactory avec plusieurs fichiers de configuration de bean?

Je suis l'idée qu'un BeanFactory/ApplicatioContext peut être initialisé avec plusieurs fichiers de configuration du bean. Est-ce vrai? Et, si c'est comment cela peut-il être fait?

+0

Quel genre o f contexte de l'application est-il, et où le configurez-vous actuellement? – skaffman

+0

http://www.technicalkeeda.com/spring/how-to-load-multiple-spring-bean-configuration-files – Vicky

Répondre

2

Voir section 3.2.2.1 dans la documentation de référence du ressort. Cela décrit comment un fichier de configuration peut être divisé en fichiers de configuration distincts qui peuvent ensuite être importés dans votre fichier de configuration principal.

+0

Merci :) Ce à peu près répondu à ma question. – Yaneeve

4

La réponse de Mark est correcte. Vous pouvez également essayer ceci:

ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{ 
           "services.xml", 
           "daos.xml", 
           "webservices.xml", 
           "validators.xml" 
          }); 
+0

Je préfère cette méthode car vous n'avez pas à "savoir" explicitement où les autres beans sont définis. Facilite la configuration d'environnements différents pour les tests, les tests d'intégration ... – Robin

1

Si vous utilisez un fichier de configuration XML, vous pouvez importer plusieurs fichiers à partir du classpath en tant que tels:

<?xml version="1.0" encoding="UTF-8"?> 
<beans> 
    <import resource="classpath:/path/to/file/one.xml" /> 
    <import resource="classpath:/path/to/file/two.xml" /> 
</beans> 
+0

Je préférais que les fichiers ne se connaissent pas les uns les autres ... – Yaneeve

+0

Si vous chargez plusieurs fichiers dans un contexte d'application, ils sont conscients l'un de l'autre (c'est-à-dire que vous pouvez référencer des beans définis dans d'autres fichiers). –

0

En lisant les réponses ci-dessus que j'avais trouvé ce qui suit classe et son constructeur concerné:

FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(String[] configLocations, 
             boolean refresh, 
             ApplicationContext parent) 
           throws BeansException 
+0

Il existe également http://static.springframework.org/spring/docs/1.0.2/api/org/springframework/context/support/ClassPathXmlApplicationContext.html qui prend en charge la même fonctionnalité. – Robin

Questions connexes