Maven 在流程资源阶段替换占位符。请参阅http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
因此,当 spring 开始创建其上下文时,值就在那里。
您可以使用 PropertyPlaceholderConfigurer 读取属性文件并使它们在 spring 上下文中可用:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file://${config.dir}/external-config.properties</value>
</list>
</property>
</bean>
“config.dir”在系统属性中:java -Dconfig.dir=/dir/ 或者我认为它也可以是上下文参数。
在属性文件中的 spring 上下文中 ${key} 可用于配置 bean。根据 spring 的版本,注释也可用。或者 PropertyResolver 也有一个命名空间。
所以 maven 过滤和 spring 可以很好地协同工作。