@AutoWired를 사용하여 @Component로 구성된 비 관리 빈을 관리 빈에 삽입하고 싶습니다. 내가 구성 할 수있는 권한을 갖습니다 확신하지만, 어떤 이유로 나는 예외가 계속 : 오류를 바탕으로@Component 주석이 달린 관리되지 않는 빈을 자동으로 호출
No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean
을, 나는 그것이 바즈 클래스를 찾을 수 없습니다 같은데요,하지만 난 왜 그런지 모르겠다. 컨텍스트 : XML 구성의 스프링 구성 요소가이 작업을 수행 할 수 있도록되어 있다고 생각합니다. 적절한 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>
나는 하나의 관리 빈
을했다 :package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
그리고 하나의 관리되지 않는 콩 : 내가
package foo;
@Component
public class Baz {
...
}
뭔가가 거기를 누락?
EDIT : 로그에 빈 인스턴스가 나열되고 foo.Baz는 그 중 하나가 아닙니다. 왜 그것이 @Component 주석이 달린 클래스를 선택하지 않는지 나는 모른다.
로깅은 무엇을 말합니까? 그것은 foo 패키지의 빈을 자동으로 감지한다는 것을 언급합니까? 디버그 로깅에서 어떤 @Component Bean이 발견되었는지 밝혀야합니다. – skaffman
덧붙여서 aspectj/weaving/spring-configured stuff는 당신이하고 싶은 일에 반드시 필요한 것은 아닙니다. 이것은 단지 기본적인 autowiring 일뿐입니다. – skaffman