@Autowired
byコンストラクタは、型によってBeanを探します。 autowiredアノテーションを使用してコンストラクタに名前でBeanを挿入する方法 同じタイプの2つのBeanがありますが、Bean名に基づいて別の同じクラスのコンストラクタに注入する必要があります。どうすればいいのですか?@Autowiredはコンストラクタによって、型別にBeanを検索します。自動注釈を使用してコンストラクタに名前でBeanを挿入する方法
XML:
<bean id="A" class="com.Check"/>
<bean id="B" class="com.Check"/>
のJava:私はこれを行うと
Class C {
private Check check;
@Autowired
public C(Check check){
this.check = check
}
}
私は、同じタイプのチェックの2つの豆を持っていますが、それはただ一つのBeanがあることが必要であることを私に言って例外を取得そのタイプの。どのようにしてid="B"
のbeanをコンストラクタインジェクションを通してこのクラスC
に注入できますか?
私のapplicationContext.xml
で私はautowire="byType"
を挙げました。私はこの特定のクラスでのみbyName
をautowireする必要があります。残りはすべてautowiredする必要があります。タイプのみ
まだ動作していません。 I)は、EMが(entityManagerFactory.createEntityManagerを= { \t \t \t \t @Autowired \t公共CheckDAO(@Qualifier( "のEntityManager")のEntityManagerFactoryのEntityManagerFactory)を用います。 \t \t} この例外が発生しました。 org.springframework.beans.factory.BeanCreationException:名前 'checkDAO'を持つBeanの作成中にエラーが発生しました:永続性依存関係の注入が失敗しました。ネストされた例外はorg.springframework.beans.factory.NoSuchBeanDefinitionExceptionです:タイプ[javax.persistence.EntityManagerFactory]の適格なBeanが定義されていません:予想される単一のBeanですが見つかりました2 – user2972319
残念です – user2972319