我有以下bean配置

<bean id="firstBean" class="...">
   <property name="someProperty" fef="someOtherBean"/>
</bean>

<bean id="secondBean" class="...">
   <constructor-arg ref="firstBean"/>
</bean>


问题在于,第二个bean试图从构造函数中的firstBean获取someProperty,但尚未注入。这两个类都是我无法更改的库。有没有一种方法可以在将firstBean注入secondBean之前对其进行强制设置?

谢谢

编辑

这个问题没有直接的解决方案,所以我用工厂内部解决了这两个bean并提供了实例化的secondBean来解决。

最佳答案

使第二个bean依赖于第一个。

<bean id="secondBean" class=".." depends-on="firstBean">


这样,spring会在实例化firstBean之前确保secondBean准备就绪。

另一种选择是使用FactoryBean或使用@Bean的编程bean定义。这样,您可以更好地控制实例化过程。

09-25 21:37