我不知道,如何使用@ ImportResource在spring中从classpath加载多个配置文件。我已经通过链接Spring 3 @ImportResource with multiple files但到目前为止没有运气。我的代码如下。
@Configuration
@PropertySource("classpath:apis.application.properties")
@ComponentScan(basePackages = {"org.surfnet.oaaas.resource", "org.surfnet.oaaas.service"})
@ImportResource({"classpath:spring-repositories.xml,classpath:commonApplicationContext.xml"})
@EnableTransactionManagement
public class SpringConfiguration {
}
我面临的例外是
java.io.FileNotFoundException: class path resource [spring-repositories.xml,classpath:commonApplicationContext.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
当我尝试加载单个文件时,如下所示。它适用于两个文件。但我不能在java类中包含两个ImportResource
注释。
@ImportResource("classpath:spring-repositories.xml"})
答案 0 :(得分:4)
您使用的语法错误。仔细查看在您链接的问题中如何完成。
有两个字符串,而不是一个包含以逗号分隔的名称的字符串:
@ImportResource({"classpath:spring-repositories.xml", "classpath:commonApplicationContext.xml"})
答案 1 :(得分:2)
但你是对的:)这与ComponentScan类似:
@ImportResource({"classpath:spring-repositories.xml","classpath:commonApplicationContext.xml"})
在{}中定义资源时,将每个资源放在单独的String中,可选择使用file:,classpath:prefix。
我也找到了这个堆栈页面: