Spring - IoC 컨테이너로 빈 관리하기

2020. 8. 15. 12:19Java/Spring

반응형

spring에서는 bean을 관리하기 위해서 IoC 컨테이너를 사용하고 있다.

 

프레임워크(Framework) 기반의 개발에서는 프레임워크 자신이 흐름을 제어하는 주체가 되어, 필요 할 때마다 애플리케이션 코드를 호출하여 사용하는데 프레임워크에서 이 제어권을 가지는 것이 바로컨테이너(Container)이다.

 

 객체에 대한 제어권이 개발자로부터 컨테이너에게 넘어가면서 객체의 생성부터 생명주기 관리까지의 모든 것을 컨테이너가 맡아서 하게된다. 이를 일반적인 제어권의 흐름이 바뀌었다고 하여 IoC(Inversion of Control : 제어의 역전)라고 한다. 

 

즉, IoC는 코드작성의 흐름이 프로그래머가 아닌 프레임워크에 있는 것이다.

 

사용 방법을 알아보도록 하겠다.

 

1. 이전 시간에 생성했던 Maven프로젝트에서 MainClass를 생성한다.

 

2. Bean을 넣을 TestBean 클래스도 생성한다.

   생성 후 생성자도 추가하여 준다.

3. beans.xml 파일에 다음과 같이 추가한다.

<bean id='t1' class='kr.co.softcampus.beans.TestBean'/>

4.MainClass에서 해당 beans.xml을 불러오고 factory에 담는다.

5. getBean을 이용하여 factory에서 원하는 빈을 꺼내어 생성한다.

6.새롭게 빈을 t2에 선언해도 같은 주소 값을 가지고 있다. 즉, 새로 생성하는 것이 아닌 기억 후 동일한 것을 사용한다.

7. 위 방식은 사용하지 않으므로 현재 사용하는 방식에 대해 알아보자.

ClassPathXmlApplicationContext를 사용하여 beans.xml을 불러온다.

해당 방식은 파일을 불어옴과 동시에 별다른 설정 없으면 beans.xml에 있는 모든 빈즈를 생성한다.

 

다음과 같이 설정을 해주어 원하는 빈즈를 생성 가능하다.

반응형