런타임에 둘 이상의 종속성 또는 대체 MyClass 인스턴스가 없을 것이라 확신하는 경우 StuPointerException에 의해 솔루션을 사용할 수 있습니다. 그러나 Test와 AnotherTest가 단일 응용 프로그램 컨텍스트에 존재하면 Spring Bean의 단일 범위 기본 범위로 인해 AnotherTest 초기화가 Test 상태에도 영향을 미칩니다.
@Resource가 두 bean 모두에 동일한 bean을 주입하기 때문입니다.
이렇게하려면 동일한 클래스로 다른 빈을 만들어야합니다. 이를 위해서는 xml 구성 또는 JavaConfig가 필요합니다.
@Configuration
public class AppConfig {
@Bean
public MyClass myClass1() {
MyClass myClass = new MyClass();
myClass.setMyAttribute("attr-value-1");
return myClass;
}
@Bean
public MyClass myClass2() {
MyClass myClass = new MyClass();
myClass.setMyAttribute("attr-value-2");
return myClass;
}
}
그리고 당신은 이전과 같이하지만, 각각의 경우 내가 객체를 주입하는 다른 방법이 알고
public class Test {
@Resource("myClass1")
private MyClass myClass;
}
public class AnotherTest {
@Resource("myClass2")
private MyClass myClass;
}
다른 콩 @Resource로 autowire하기 수 있지만 : 여기에 주석을 선호하기 때문에 그것은이다 이 속성을 설정하는 방법에 실제로 대답하지 않습니다. – Andy