是否可以在每个jar文件中使用弹簧配置XML文件以及其他信息?

时间:2012-01-04 20:43:23

标签: java spring plugins configuration configuration-files

我的主要Spring配置XML文件指定了这样的内容:

<context:component-scan base-package="com.application" />

在此扫描期间找到的组件可以位于我的类路径中的许多jar文件之一。我希望能够在每个jar文件中有额外的spring配置XML文件,它们提供有关每个服务/组件的更多信息(可能是一些属性和诸如此类的东西),但我不希望这些东西与我的紧密耦合主应用程序的配置文件。

有没有办法做到这一点,还是我运气不好?

理想情况下,我希望能够根据JAR文件中的名称和/或位置以某种方式自动检测JAR文件中XML文件的存在。

我知道有些事情可以通过META-INF完成,但这远远超出了我的专业领域。

1 个答案:

答案 0 :(得分:6)

  

理想情况下,我希望能够根据JAR文件中的名称和/或位置以某种方式自动检测JAR文件中XML文件的存在。

是的,这非常简单。

在您的主Spring上下文文件中,添加如下内容:

<import resource="classpath*:config.xml"/>

请注意通配符语法。这将扫描类路径的根,查找名为config.xml的任何资源,并将它们导入到主上下文中。

因此,您的JAR可以在其根目录中各有一个config.xml,它就会发生。当然,这些config.xml文件可以执行自己的导入,依此类推。