有没有办法从文件系统中的上下文和类路径一次获取ApplicationContext?而不是使用FileSystemXmlApplicationContext然后使用ClassPathXmlApplicationContext并将fileSystemApplicationContext作为父级传递?
答案 0 :(得分:3)
我建议您查看org.springframework.context.support.GenericApplicationContext
。与org.springframework.beans.factory.xml.XmlBeanDefinitionReader
一起,它可以为您提供所需的灵活性。 GenericApplicationContext
's javadoc
您的代码如下:
GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions(new ClassPathResource("classpathContext.xml"));
xmlReader.loadBeanDefinitions(new FileSystemResource("fileSystemContext.xml"));
请注意,XmlBeanDefinitionReader
还有一个方法loadBeanDefinitions(String)
,然后使用org.springframework.core.io.ResourceLoader
来处理相应的资源。在这种情况下,您的代码将如下所示:
GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions("classpath:classpathContext.xml"));
xmlReader.loadBeanDefinitions("file:fileSystemContext.xml"));