Предположим, у меня есть компонент DialogBox, со свойствами для высоты и ширины:
public class DialogBox {
int x;
int y;
...
}
В моем applicationContext.xml я определил бы свойства как разумные значения по умолчанию:
<bean id="dialogbox" class="DialogBox">
<property name="x" value="100"/>
<property name="y" value="100"/>
</bean>
У нас есть несколько клиентов, которые используют bean-компонент dialogBox, и каждый хочет получить пользовательское значение для x и y. Один из обсуждаемых нами путей состоит в том, чтобы иметь несколько файлов свойств, по одному для каждого клиента, и сопоставить идентификатор клиента с соответствующим файлом, например, клиент 123 будет отображаться в dialogbox_123.properties:
dialogbox_123.properties:
x=200
y=400
Затем во время выполнения, когда запрашивается bean-компонент, Spring проверяет, существует ли файл пользовательских свойств для клиента, и использует эти свойства, в противном случае используют значения по умолчанию. Мне известно о PropertyOverrideConfigurer, но AFAIK это работает только при запуске контекста, поэтому не будет работать для наших целей. Есть ли весной существующая возможность для этого или кто-то может порекомендовать другой способ?