공부기록

스프링 애플리케이션이란? 본문

Spring

스프링 애플리케이션이란?

gracelove91 2019. 10. 9. 11:02
반응형

애플리케이션 컨텍스트

  • IoC와 DI를 위한 빈팩토리 + 그 이상의 기능을 가진다.

IoC컨테이너

  • 스프링 애플리케이션에서는 오브젝트의 생성과 관계설정, 사용, 제거 등의 작업을 코드 대신 독립된 컨테이너가 담당한다. 오브젝트의 제어권을 코드 대신 컨테이너가 갖고 있기 떄문에 IoC(제어의 역전)컨테이너라고 불린다.
    • 오브젝트의 생성과 오브젝트 사이에서의 관계를 맺어주는 DI관점으로 볼 때는 컨테이너를 빈 팩토리라고 한다.
  • 빈 팩토리
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
        MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
        ...
        }
  • ApplicationContext 인터페이스의 내부 코드다. ListableBeanFactory 와, HierarchicalBeanFactory 을 상속 받았다.

IoC컨테이너가 동작하기 위해 필요한 두 가지

  • POJO클래스
  • 빈설정메타정보
    • 빈설정정보는 보통 XML이나 자바코드로 작성되어긴하지만 특정한 파일 포맷이나 형식에 제한되거나 종속되지 않는다.
    • BeanDefinitionReader 인터페이스를 구현한 Reader를 만들기만하면, 메타정보는 어떤 형식으로든 작성할 수 있다.

IoC 컨테이너를 통해 애플리케이션이 만들어지는 과정

  1. 메타정보 리소스를 메타정보 리더를 통해 읽어서 설정 메타정보를 만든다.
  2. POJO클래스와 메타정보를 이용해 애플리케이션컨텍스트를 만든다.
  3. 2에서 만들어진 애플리케이션 컨텍스트를 이용해 애플리케이션이 만들어진다.

결론 - 스프링애플리케이션이란 POJO클래스와 설정 메타정보를 이용해 IoC컨테이너가 만들어주는 오브젝트의 조합이다.

반응형