あなたcom.package.MyClass
はCDIによって管理されていない場合、それは指摘したように、依存関係を注入するための標準的なCDIによって可能ではありません:あなたは、インスタンスを自分で作成することなく、プログラムの検索を行うことができますあなたの問題を解決するために
他人によって。
ただし、すべてのインフラストラクチャが利用可能です。 DeltaSpikeは、探している機能を提供します。 DeltaSpikeを含めることなくこのコードフラグメント(他のDeltaSpikeコードに依存しない)を使用することもできます。 https://docs.oracle.com/javaee/6/tutorial/doc/gjdid.html:
@SuppressWarnings("unchecked")
public static <T> T injectFields(T instance) {
if (instance == null) {
return null;
}
BeanManager beanManager = CDI.current().getBeanManager();
CreationalContext<T> creationalContext = beanManager.createCreationalContext(null);
AnnotatedType<T> annotatedType =
beanManager.createAnnotatedType((Class<T>) instance.getClass());
InjectionTarget<T> injectionTarget = beanManager.createInjectionTarget(annotatedType);
injectionTarget.inject(instance, creationalContext);
return instance;
}
CDIは本当にあなたがプロデューサメソッドについて読んでいました、その時点でのドキュメントを、持っていません。 – Gimby
これでJUnitテストを記述したいのですか? – tak3shi
私はドキュメントがあることを知っています、私はそこにいて、私はそれを読んでいます。問題はあなたが私の問題を理解していないということです。私は生産者の方法や分野について知っています。彼らは私の問題を解決する助けにはなりません。私は自分でクラスをインスタンス化しています。インスタンス化しているクラスが動的であることがわかりますか?私はCDIを呼び出す方法が必要で、私のオブジェクトインスタンスでインジェクションを行うよう指示します。 –