0

我有一个带有自动装配豆的豆。

所以像:

class A
{
    @Autowired
    B b;

    @Autowired
    C c;

    void function()
    {
       // here I would like to do something when I an sure the wiring has been done
       // being sure that I won't wait forever
       ...

有些东西必须存在,但我找不到。

谢谢你的帮助!

4

3 回答 3

3

您可以使用 @PostConstruct 注释您的“功能”方法并<context:annotation-config/>在您的 spring 配置 XML 中指定。然后,函数只会在自动装配后被调用,因此您可以在函数中检查您的 bean 是否已成功注入。

于 2013-05-24T09:20:16.580 回答
1

实现此目的的经典方法是实现InitializingBean

由 BeanFactory 设置所有属性后需要做出反应的 bean 实现的接口:例如,执行自定义初始化,或仅检查是否已设置所有必需属性。实现 InitializingBean 的另一种方法是指定自定义 init 方法,例如在 XML bean 定义中。有关所有 bean 生命周期方法的列表,请参阅 BeanFactory javadocs。

我还建议阅读其他答案:

于 2013-05-24T09:18:59.077 回答
0

如果您使用的是单例 bean 的默认范围,那么自动装配将始终仅在应用程序启动时完成。如果任何字段的接线失败,那么 spring 容器将抛出异常并且应用程序将无法正常启动。所以,如果代码的控制权在你的方法中,那说明已经连线了。

于 2013-05-24T08:57:28.050 回答