我有一个包含多个Spring配置文件的Web应用程序。这些文件使用web.xml中的“contextConfigLocation”加载。像这样:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:META-INF/*beans.xml
</param-value>
</context-param>
一切都按预期工作。
现在我不得不编写一个必须加载与Web应用程序相同的文件的命令行应用程序。目前我正在使用ClassPathXmlApplicationContext并手动指定每个配置文件名。但迟早有人会添加另一个文件并期望它被CLI读取,就像网络应用程序一样。目前这不会发生,因为我的CLI中显式指定了每个文件。所以我需要我的CLI加载配置文件,就像Web应用程序一样,即加载与模式匹配的所有配置文件。有没有办法使用ClassPathXmlApplicationContext或任何其他方式?
答案 0 :(得分:1)
我认为您可以使用ClassPathXmlApplicationContext执行此操作,这将加载类路径中以名称 Bean
结尾的任何上下文文件public class LoadContext {
/**
* @param args
*/
public static void main(String[] args)
{
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:*Beans.xml");
}
}
答案 1 :(得分:0)
为什么不创建新配置文件spring-all.xml
并仅加载此配置文件。在此文件中,使用import
元素导入所需的所有其他xml配置文件。
<beans>
<import resource="spring-services.xml"/>
<import resource="spring-daos.xml"/>
<import resource="spring-controllers.xml"/>
...
</beans>