@AutoWiredを使用して、@Componentで構成された非管理対象Beanを管理対象Beanに注入したいと思います。構成が正しいことは確かですが、何らかの理由で例外が発生し続けます。
No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean
エラーから、Bazクラスが見つからないと思いますが、理由はわかりません。XML構成のcontext:spring-configured要素がこれを可能にするはずだったと私は理解しています。また、適切なjarファイル(spring-weaving.jarおよびaspectjweaver.jar)を含めるようにしました。
これが私のセットアップの簡単な例です。
私のXML構成:
<beans ...>
...
<context:annotation-config/>
<context:spring-configured/>
<context:component-scan base-package="foo"/>
<bean id="bar" class="foo.Bar"/>
...
</beans>
管理対象のBeanが1つあります。
package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
そして、1つの管理されていないBean:
package foo;
@Component
public class Baz {
...
}
足りないものはありますか?
編集:ログにはインスタンス化されているBeanがリストされており、foo.Bazはその1つではありません。@Component注釈付きクラスを取得しない理由がわかりません。