BeanFactory
имеет метод getBean(String name, Object... args)
, который, в соответствии с javadoc , позволяет указывать аргументы конструктора, которые используются для переопределения собственных аргументов определения компонента.Таким образом, вы можете поместить значение по умолчанию в файл bean, а затем указать «реальные» значения времени выполнения, когда это необходимо, например,
<bean id="myBean" class="A" scope="prototype">
<constructor-arg value="0"/> <!-- dummy value -->
</bean>
, а затем:
getBean("myBean", myTimeoutValue);
У меня нетпопробовал сам, но это должно сработать.
PS scope="prototype"
теперь предпочтительнее singleton="false"
, что является устаревшим синтаксисом - он более явный, но делает то же самое.