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 컨테이너를 통해 애플리케이션이 만들어지는 과정
- 메타정보 리소스를 메타정보 리더를 통해 읽어서 설정 메타정보를 만든다.
- POJO클래스와 메타정보를 이용해 애플리케이션컨텍스트를 만든다.
- 2에서 만들어진 애플리케이션 컨텍스트를 이용해 애플리케이션이 만들어진다.
결론 - 스프링애플리케이션이란 POJO클래스와 설정 메타정보를 이용해 IoC컨테이너가 만들어주는 오브젝트의 조합이다.
반응형