假设我有一个Bean DialogBox,它具有高度和宽度的属性:
public class DialogBox {
int x;
int y;
...
}
Run Code Online (Sandbox Code Playgroud)
在我的applicationContext.xml中,我将属性定义为合理的默认值:
<bean id="dialogbox" class="DialogBox">
<property name="x" value="100"/>
<property name="y" value="100"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
我们有多个使用dialogBox bean的客户端,每个客户端都需要一个x和y的自定义值。我们讨论的一种方法是拥有多个属性文件,每个客户端一个属性文件,并将客户端ID映射到适当的文件,例如,客户端123将映射到dialogbox_123.properties:
dialogbox_123.properties:
x=200
y=400
Run Code Online (Sandbox Code Playgroud)
然后在运行时,当请求Bean时,spring将查看是否为客户端存在定制属性文件,并使用这些属性,否则使用默认值。我知道PropertyOverrideConfigurer,但是AFAIK仅在启动上下文时才起作用,因此对于我们的目的不起作用。春天是否有现成的设施可以实现这一目标,或者有人可以推荐另一种方式?