Spring Autowiring은 Interface에서만 작동합니다

나는 Spring 프레임 워크를 처음 접했고 다음 문제를 발견했습니다.

I have an interface ClassA , 이것은 classed 에 의해 구현되었습니다. ] ClassA1 ClassA2 .

다음 빈 정의가 applicationContext.xml

<bean id="class1" class="com.abc.ClassA1" />
<bean id="class2" class="com.abc.ClassA2" />

아래와 같이 두 구현 클래스를 Autowire하고 싶습니다.

@Autowired
private ClassA1 classA1;

@Autowired
private ClassA2 classA2;

The 위의 코드는

필드에 자동 쓸 수 없습니다. com.abc.ClassA1 com.abc.SomeClass.classA1; 중첩 된 예외는 org.springframework.beans.factory.NoSuchBeanDefinitionException : 유형의 일치하는 Bean이 없습니다. [com.abc.ClassA1]

하지만 자동 배선을 아래와 같이 인터페이스로 변경하면 :

@Autowired
ClassA classA1;

그러면 ClassA1이 변수에 자동 배선됩니다. ClassA2에 변수를 자동 연결하는 방법에 대해 잘 모르겠습니다.

16
задан Tarlog 28 June 2011 в 18:42
поделиться