Ответ 1
Вы можете использовать Spring Язык выражений, чтобы ссылаться на другие свойства bean по имени. Вот пример, приведенный в документах
<bean id="numberGuess" class="org.spring.samples.NumberGuess">
<property name="randomNumber" value="#{ T(java.lang.Math).random() * 100.0 }"/>
<!-- other properties -->
</bean>
<bean id="shapeGuess" class="org.spring.samples.ShapeGuess">
<property name="initialShapeSeed" value="#{ numberGuess.randomNumber }"/>
<!-- other properties -->
</bean>
В вашем случае вы можете использовать
<bean id="configurationManager"
class="com.foo.ConfigurationManager"
init-method="init">
<property name="configurationFile" value="etc/configuration.xml"/>
</bean>
<bean id="dataCenter"
class="com.foo.DataCenter">
<property name="storages" value="#{configurationManager.configuration}"/>
</bean>
Аналогичным образом вы можете использовать @Value
аннотацию в методах @Bean
или используйте его в методах @Autowired
.