@AutoWiredを使用して、マネージドBeanに@Componentでコンフィグレーションされた非管理Beanを注入したいとします。私は、設定権を持っているかなり確信しているが、私は例外を取得しておく何らかの理由:@Componentで注釈が付けられたアンマネージドBeanの自動呼び出し
No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean
誤差に基づいて、私はそれがバズクラスを見つけることができません推測しているが、私はよ理由は分かりません。 XML設定のspring-configured要素が私にこれを可能にすると考えられていたという私の理解です。また、適切なjarファイル(spring-weaving.jarおよびaspectjweaver.jar)も含めてください。
私のセットアップの簡単な例です。
私のXML設定ファイル:
package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
そして、もう一つの管理対象外の豆:
<beans ...>
...
<context:annotation-config/>
<context:spring-configured/>
<context:component-scan base-package="foo"/>
<bean id="bar" class="foo.Bar"/>
...
</beans>
私は1つの管理Beanを持つ
package foo;
@Component
public class Baz {
...
}
は、私が欠けているものはありますか?
EDIT:ログにはBeanのインスタンス化がリストされ、foo.Bazはそれらのいずれでもありません。なぜ@Componentアノテートされたクラスを取得していないのか分かりません。
ログには何が表示されますか? fooパッケージ内のBeanを自動的に検出していることに言及していますか?デバッグロギングでは、どの@Component Beanが検出されたかを示す必要があります。 – skaffman
ちなみに、aspectj/weaving/spring-configured stuffは、あなたがしたいことには必要ありません。これはちょうど基本的なautowiringです。 – skaffman