0

簡単なPOJOクラスがあり、さまざまな場所に注入しています。そのための明示的なプロデューサーはありません。私はただそうします@Inject POJO mypojo、そしてそれは素晴らしい働きをします。

ここでの私の問題は、POJOオブジェクト(データソースからの読み取りを含む)を他の場所に注入する前に初期化したいということです。データソース自体は@Resource(name = "jdbc/xx") DataSource ds;、POJO内のように挿入されます。私のPOJOのコンストラクターでは、これdsはnullであり、コンストラクターが完了した後にのみ注入されます。

オブジェクトの作成後、インジェクションの前に取得できるフックはありますか?インジェクションの前にオブジェクトを初期化できますか?

4

1 に答える 1

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

于 2012-12-27T19:50:30.797 に答える