我正在使用 Java 1.6 和 Spring 3.1.1。我正在尝试将外部属性文件读入 Spring 上下文。这是症结所在:第一个属性文件包含下一个属性文件的路径。例子:
${user.home} 中的第一个属性文件:
resource.dir=C:/users/smith
config.dir=${resource.dir}/configuration
第二个属性文件 ${config.dir}(在第一个属性文件中定义):
datasource.name=jdbc:mysql://dbserver:3306/test
datasource.prop1=etc
datasource.prop2=etc
所以我需要读取第一个文件,处理这些属性,然后使用它们来访问第二个文件。
使用 Spring PropertyPlaceholderConfigurer 只会让我进入第一个文件。我读到您的应用程序上下文中只能有一个 PropertyPlaceholderConfigurer,这似乎是真的。[编辑:有关说明,请参见 https://jira.springsource.org/browse/SPR-6428。]
有人知道最好的方法吗?
编辑:如果您在 ant 中运行构建,这显然很容易做到,不幸的是我的项目使用 Maven。您使用 PROPERTY 标记执行第一步,它“自动”解析下一步的所有内容,允许您将类路径设置为 ${cfg.dir} 目录等。然后您可以“正常”从这些目录。我希望 Spring 或 Maven 允许我使用相同的功能,但还没有找到答案......
蚂蚁示例:
<property file="${user.home}/global.properties" />
<target name="run-some-stuff">
<java classname="com.mystuff.App" failonerror="true" fork="yes">
<classpath>
<path location="${cfg.dir}" />
<path location="${resource.dir}" />
</classpath>
</java>
</target>