스프링 컨테이너(Spring Container)
앞서 스프링 빈(Bean)을 이용해 Spring Bean Configuration File.xml 파일에서
객체들을 빈(Bean)에 직접 담아놓은뒤, 자바 main 메소드에서 다음과 같이 꺼내왔다.
여기서 AbstractApplicationContext는 GenericXMLApplicationContext의 하위 인터페이스이고,
GenericXMLApplicationContext 는 Bean의 제어와 빈 생성을 담당하는 최상위 클래스인 BeanFactory로 부터 상속받은
인터페이스이다. 즉, 이러한 ApplicationContext가 스프링 컨테이너라고 할 수있다.
빈팩토리로부터 상속받은 하위 인터페이스들은 각각의 기능에따라 여러 갈래로 나뉘어지고, 그중
GenericXmlApplicationContext를 통해 원하는 객체들을 xml 파일에 설정하면서 (= 스프링 컨테이너에 내가 사용할 객체들을 담았다) 스프링 컨테이너가 이후 해당 객체들을 제어하고 필요할때 주입하는 방식으로 사용한다.
스프링 빈의 생명주기 : 생성 - 설정 - 사용 - 소멸
스프링 컨테이너는 Bean 객체들을 관리하면서 의존성을 주입해준다.
그러므로 스프링 컨테이너는 해당 객체의 생성부터 소멸까지의 전체 생명주기를 관리해준다.
스프링 컨테이너의 생성주기는 생성 - 설정 - 사용 - 소멸로 이루어진다.
1. 생성
: GenericXMLApplicationContext 객체를 생성한 시점이다.
2. 설정
: load() 메소드를 통해 xml파일의 classpath을 읽어들인다.
위의 코드에서는 객체를 생성과 동시에 생성자로 classpath를 넣어줘 생성과 설정을 동시에 하였다.
3. 사용
: getBean() 메소드를 이용하여 사용할 객체를 반환받는다.
스프링 컨테이너에 등록한 객체를 주입받기위해 getBean(객체명,클래스명) 메소드를 통해 사용할 객체를 반환받았다.
4. 소멸
이후 close() 메소드를 통해 스프링 컨테이너를 종료한다.
'Category > Spring' 카테고리의 다른 글
[Spring] Aspect-Oriented-Programming (1) | 2023.12.22 |
---|---|
[Spring] 외부 properties 파일을 이용한 Bean 설정 (0) | 2023.12.20 |
[Spring] 어노테이션을 이용해서 Bean 객체 생성하기 (0) | 2023.12.18 |
[Spring] 스프링과 Bean (0) | 2023.12.15 |
[JPA] @Id 어노테이션과 GeneratedValue 어노테이션 (1) | 2023.12.03 |