DepenDency Injection(DI)
: 의존 관계 주입을 통해 오브젝트 간 의존관계를 만들어줌
스프링은 런타임 시 객체 간 의존관계를 부여(컨테이너를 통해)
객체 간의 결합도를 낮춰줌(인터페이스를 사용) -> 객체 간 영향력이 줄어들어 변경용이성, 확장성 증가
IoC(Inversion of Control)
: 인스턴스를 제어하는 주도권이 역전됨
DI 컨테이너가 인스턴스의 생성과 의존 관계 연결을 해주기 때문
( A가 B를 원할 때 B를 생성해서 A에게 넣어줌 )
IoC 컨테이너
: 인스턴스의 생명주기 관리 및 의존 관계 주입을 처리함
스프링 빈(Spring Bean)의 생성, 관계, 조립, 생명주기를 관리함
- BeanFactory
경량 컨테이너로 작업할 때 활용하고 DI의 기본 기능을 제공함
빈을 가져오고 의존관계를 만들어줌
- ApplicationContext
BeanFactory 인터페이스를 상속받은 하위 인터페이스로 확장된 기능이 제공되고
일반적인 스프링 컨테이너를 의미함
//Spring xml 설정 파일
ApplictionContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//오브젝트(빈) 정의
MyBean bean = (MyBean) context.getBean("myBean");
- WebApplicationContext
웹 애플리케이션을 위한 applicationContext로 xml파일로 설정정보 정의
1) ContextLoaderListener
Persistence(DAO), Service 관련 스프링 빈을 등록
root-context.xml
2) DispatcherServlet
컨트롤러, 서블릿 관련 빈 등록
servlet-context.xml
[전체 흐름]
톰캣이 ContextLoaderLsitener를 로드 시키면서 root-context.xml 파일에 있는 스프링 빈 정보와
의존관계를 읽어 해당되는 빈을 생성하고 등록함
사용자의 request를 받으면 DispatcherServlet에 던져주고 servlet-context.xml에서 해당되는 스프링 빈과
관계를 파악해서 의존관계를 다시 만들어줌
Web.xml에 ContextLoaderListener,DispatcherServlet을 사용해서 ApplicationContext를 생성
'개발일지 > SPRING' 카테고리의 다른 글
[JSP] JSP 내에서 노출 예약걸기 (0) | 2021.09.08 |
---|---|
[SPRING] DI(Dependency Injection) 설정 방법 (0) | 2021.06.12 |
[Spring] 빌드 라이프사이클 (0) | 2021.04.26 |
[SPRING] Maven, pom 파일 이해하기 (0) | 2021.03.17 |
[SPRING] 스프링 시작 (0) | 2021.03.15 |