私は、アプリケーションでクラスの変数グループを動的に注入する必要があります。アプリケーションが大きくなるにつれて、同じインターフェイスを継承するクラスを追加するだけで済みます。これは、パッケージ内のすべてのクラスを検索し、それらをインスタンス化するためのループを実行するだけで済むので、tradicional javaで簡単に行うことができます。 CDIでやりたいたとえば:CDI:クラスのグループの動的注入方法?
public MyValidatorFactory {
for (String className: classNames) {
@Inject
MyValidatorInterface<className> myValidatorInstance;
myValidatorInstance.validate();
}
}
私はクラス名のリストで見つかったすべての実装をループ(すべての意志をしたい:
public MyValidatorInterface {
public boolean validate();
}
@Named
MyValidator1 implements MyValidatorInterface
...
@Named
MyValidator2 implements MyValidatorInterface
...
は今醜い非リアルタイムJavaコードはちょうど私が何をしたいのアイデアを取得するには次の週にMyValidator3という新しいバリデーターを追加したら、新しいクラスをコーディングしてプロジェクトに追加するだけです。 MyValidatorFactoryのループは、それを見つけて挿入し、新しいクラスに対してもvalidate()メソッドを実行します。
私はダイナミックインジェクションについて読んだことがありますが、以前のようにインスタンス化するのと同じように、クラス名のグループをループして注入する方法が見つかりません。あなたが記述している何
おかげ
CDIでInstance' 'を見てください、これはあなたが探しているものです:あなたはこのような何かをしたいと思うでしょうjavax/enterprise/inject/Instance.html。 – Rouliboy
ご意見ありがとうございます。それが解決策のアプローチでした。 – icordoba