可以使bean這需要一個地圖參數從上下文中使用默認值,並初始化系統屬性
<bean class="test.B1">
<constructor-arg>
<map>
<entry key="p1" value="v1" />
<entry key="p2" value="v2" />
....
</map>
</constructor-arg>
</bean>
。在上下文
public B1(Map<String, String> defaultProperties) {
for (Map.Entry<String, String> e : defaultProperties.entrySet()) {
if (System.getProperty(e.getKey()) == null) {
System.setProperty(e.getKey()
, e.getValue());
}
}
}
B1定義應使用#{systemProperties.myProperty}
使得性能首先被初始化任何bean之前
UPDATE
這是有關重寫系統屬性。但是,如果你只需要覆蓋春天佔位喜歡這裏
<bean class="test.B1">
<property name="prop1" value="${xxx}" />
</bean>
它足以設置屬性佔位符的地方覆蓋ATTR爲「true」
<context:property-placeholder location="classpath:/app.properties" local-override="true" />
看到我的更新,也許它會感興趣 –