我想使用@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:
package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
还有一个非托管 bean:
package foo;
@Component
public class Baz {
...
}
有什么我想念的吗?
编辑:日志列出了它实例化的 bean,而 foo.Baz 不是其中之一。我不知道为什么它没有选择 @Component 注释类。