我的主要Spring配置XML文件指定了这样的内容:
<context:component-scan base-package="com.application" />
在此扫描期间找到的组件可以位于我的类路径中的许多jar文件之一。我希望能够在每个jar文件中有额外的spring配置XML文件,它们提供有关每个服务/组件的更多信息(可能是一些属性和诸如此类的东西),但我不希望这些东西与我的紧密耦合主应用程序的配置文件。
有没有办法做到这一点,还是我运气不好?
理想情况下,我希望能够根据JAR文件中的名称和/或位置以某种方式自动检测JAR文件中XML文件的存在。
我知道有些事情可以通过META-INF完成,但这远远超出了我的专业领域。
答案 0 :(得分:6)
理想情况下,我希望能够根据JAR文件中的名称和/或位置以某种方式自动检测JAR文件中XML文件的存在。
是的,这非常简单。
在您的主Spring上下文文件中,添加如下内容:
<import resource="classpath*:config.xml"/>
请注意通配符语法。这将扫描类路径的根,查找名为config.xml
的任何资源,并将它们导入到主上下文中。
因此,您的JAR可以在其根目录中各有一个config.xml
,它就会发生。当然,这些config.xml
文件可以执行自己的导入,依此类推。