在命令行应用程序中使用ant样式模式指定多个Spring配置文件

时间:2011-09-23 14:14:00

标签: spring

我有一个包含多个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或任何其他方式?

2 个答案:

答案 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>