0

たとえば、コンストラクターで依存関係を取得するクラスがあります。

class ExampleService() {

    private Dependency dep;

    public ExampleService(Dependency dep) {
        this.dep = dep;
    }

}

および依存関係クラス:

class Dependency {

    public static Dependency getInstance() {
        return new Dependency();
    }

    private Dependency() {
        /*constructor implementation here*/
    }

}

Dependency.getInstance() メソッドの結果を @Inject EJB アノテーションで ExampleService コンストラクターに注入したい。出来ますか?どのように?ありがとうございました。

4

1 に答える 1

0

CDI では、プロデューサー メソッドを staticにすることができるため、例を使用すると、次のようにうまく機能します。

class ExampleService() {

    private Dependency dep;

    @Inject
    public ExampleService(Dependency dep) {
        this.dep = dep;
    }

}

class Dependency {

    @Produces
    public static Dependency getInstance() {
        return new Dependency();
    }

    private Dependency() {
       /*constructor implementation here*/
    }

}

ただし、質問へのコメントで述べたように、必要なものによってはより良い方法があるかもしれません。

于 2013-10-06T14:39:36.387 に答える