javax.inject.Provider
Spring の代わりにどのように使用できるかを確認しようとしています<lookup-method>
。ここに私のコードがあります
public abstract class MyAbstractClass<Source,Target>{
@Autowired
private Provider<Target> targetBean;
protected abstract Target createTarget();
public Provider<Target> getTargetBean() {
return this.targetBean;
}
}
public class MyClass extends MyAbstractClass<ObjectA, ObjectB>{
@Override
protected ObjectB createTarget()
{
return this.targetBean.get();
}
}
しかし、このコードを実行すると、次の例外が発生します
org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [java.lang.Object] is defined: expected single matching bean but found // list of all beans
私の理解はProvider
正しくありませんが、私の質問は、提供する必要がありますか?
@Autowired
private Provider<Target> targetBean;
各実装クラスで、または私が完全に間違っていることがありますか? オブジェクトのタイプを Abstract クラスに渡しているため、プロバイダーは要求されている Bean のタイプを見つけることができると想定していました。