📌 IoC Container라고 불리우는 ApplicationContext 계층 구조

 

 

 


 

 

📌 IoC  (Inversion Of Control 제어의 역전)

컴포넌트 의존관계 설정, 설정, 및 생명주기를 해결하기 위한 디자인 패턴이다.

객체의 생성 및 생명주익에 대한 모든 객체의 제어권이 바뀌었다는 것을 의미한다.

즉, 필요한 객체가 있으면 내가 직접 생성해서 사용하는 것이 아니고, 외부에서 나한테 필요한 객체를 생성해서 던져준다. 타입만 일치하면 나는 받아서 사용할 수 있다.

 

 

 

 

📌 IoC 컨테이너

IoC 방법으로 빈(bean)을 관리한다는 의미에서 IoC 컨테이너라고 한다.

▪ 개발자가 직접 객체를 생성하지 않고 객체의 생성과 소멸을 컨테이너가 관리한다.
  즉, 컨테이너에 객체를 담아두고 필요시 컨테이너로부터 객체를 가져와 사용한다.

▪ 객체간의 의존성 설정은 DI(Dependency Injection)를 이용한다.

▪ 컨테이너 자체도 빈(bean)으로서 BeanFactory ApplicationContext가 컨테이너가 구현해야 할 기본 인터페이스 이다.

▪ 빈(bean)을 생성하고 서로간에 필요시 엮어주고 우리에게 제공해준다. 또한 필요 없어지면 빈(bean)을 제거도 해준다.

 

 

 

📌 BeanFactory와 ApplicationContext는 뭐지?

IoC 컨테의너의 핵심적인 2가지 클래스라는 건 알겠는데 이것들은 또 뭘까?

  • BeanFactory란?
    자바 객체(bean) 인스턴스르 생성, 설정, 관리하느 실질적인 컨테이너
  • ApplicationContext
    BeanFactory를 상속받고 있으며 확장 버전이다. 

결국 두 클래스 모두 Bean을 생성하고, 관리하는 클래스이다.

 

 

 


 

 

📌 API Doc 보기

 

 


 

 

📌 ApplicationContext에 빈의 설정 정보를 알려주는 방식 3가지 (Configuration metadata)

  1. xml based configuration
  2. annotation based configuration + 최소한의 xml 필요 ( 사용할 방법 ) ⇒ Spring 2.5부터 지원
  3. java based configuration ⇒ Spring 3.0부터 지원

 

 


 

 

📌 POJO (Plain Old Java Object)

⇒ 평이한 옛날에 사용했던 자바 객체

⇒ 어떠한 extends 또는 implements가 없음 따라서 스프링의 빈은 플랫폼에 독립적이다.
      예> public class LoginServlet extends HttpServlet{}
        반대로 서블릿은 (LoginServlet) 웹 환경에 의존적임

 

 

 


 

 

📌 prefix 및 패키지

ApplicationContext ctx = new GenericXmlApplicationContext(”classpath:com/config/user.xml”,

ApplicationContext ctx = new GenericXmlApplicationContext(”classpath:com/config/user.xml”,

                                                              “file:c:\\temp\\user2.xml”);

 

'Framework > SPRING FRAMEWORK' 카테고리의 다른 글

다양한 의존성 주입 방법 (DI)  (0) 2023.08.28
DI (Dependency injection)  (0) 2023.08.28
02. 빈 얻기  (0) 2023.08.26
01. 빈 생성_prefix  (0) 2023.08.26
01. 빈 생성_multi  (0) 2023.08.26
xoo | 수진