在焊接中如何在注入之前初始化对象

时间:2012-12-27 15:21:05

标签: java dependency-injection initialization weld

我有一个简单的POJO类,我注入了许多地方。它没有明确的生产者。我只做@Inject POJO mypojo而且效果很好。

现在我的问题是我想在注入到其他地方之前初始化POJO对象(涉及从数据源读取)。数据源本身在POJO中注入@Resource(name = "jdbc/xx") DataSource ds;。 现在在我的POJO的构造函数中,ds为null,它只在构造函数完成后注入。

在创建对象之后和注射之前是否有一个钩子,所以我可以在注射之前初始化我的对象?

1 个答案:

答案 0 :(得分:2)

这是@PostConstruct注释的用途。它是在您的bean由CDI容器构造之后但在实际投入使用之前调用的。例如:

public class POJO {
    public Pojo() {
        super();
    }

    @PostConstruct
    protected void initialize() {
        // initialization code here
    }
}

文档:http://docs.oracle.com/javaee/6/api/javax/annotation/PostConstruct.html