2017-03-16 2 views
0

나는 XML에서 응용 프로그램 컨텍스트를 만들고이 클래스가 있습니다를 주입 콩 의존성

public class SpringModel { 
    public SpringModel(Object dependency) { 
     ApplicationContext applicationContext = new ClassPathXmlApplicationContext(...); 
     Foo foo = (Foo) applicationContext.getBean("foo"); 
    } 
} 

"foo에"라는 이름의 빈은 다음과 같습니다 생성자가 있습니다

public Foo(Object dependency) { 
    ... 
} 

SpringModel의 생성자 인수를 Foo의 생성자에 삽입하고 싶습니다. 이것이 가능한가? 당신이 XML 기반 응용 프로그램 컨텍스트를 사용하는 경우

+0

구성 요소 검사를 사용하는 경우 생성자 종속성을 @Autowired와 연결할 수 있습니다. Qualifier annotation을 사용하여 일치하는 것이 여러 개인 경우 Bean의 범위를 좁힐 수 있습니다. – jmw5598

+0

여기에 주제에 대한 좋은 글이 있습니다. http://www.baeldung.com/constructor-injection-in-spring – jmw5598

답변

0

당신은 또한 당신의 푸 객체 참조가 적절한 세터로 SpringModel 클래스에서 개인 변수가 될이 쉽게 될 수

<beans> 
    <bean id="dependencyObj" class="Object"/> 

    <bean id="springModelObj" class="SpringModel"> 
     <constructor-arg ref="dependencyObj"/> 
    </bean> 

    <bean id="foo" class="Foo"> 
     <constructor-arg ref="dependencyObj" /> 
    </bean> 
</beans> 

같은 종속 관계를 정의 할 수 있습니다 방법. 그런 다음 속성 태그가있는 xml 구성의 SpringModel 빈에 연결할 수 있습니다.