如何知道bean的接线是否已完成自动装配?

时间:2013-05-24 08:20:54

标签: spring autowired

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

类似于:

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
       ...

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

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

实现这一目标的一种经典方法是实施InitializingBean

  

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

我还建议阅读其他答案:

答案 2 :(得分:0)

如果您对单例bean使用默认作用域,则自动装配将始终仅在应用程序启动时完成。如果任何字段的连线失败,则spring容器将抛出异常,应用程序将无法正常启动。因此,如果代码控制在您的方法中,则意味着已完成布线。

相关问题