반응형
스프링의 주요 개념에 대해 간단히 알아보겠습니다.
IoC (Inversion of Control) 제어의 역전
제어의 역전, 즉 초기에 개발자가 객체를 생성하고 주입해 주던 것을
프레임워크에 의해 동작되는 것을 말합니다.
스프링에서는 Application Context에서 Bean을 생성하고 주입시켜 줍니다.
DI (Dependency Injection) 의존성 주입
IoC의 대표적인 동작원리로 외부로부터 다이내믹하게 오브젝트를 주입받는 것을 말합니다.
다음과 같은 원칙을 따릅니다.
- 클래스 모델이나 코드에는 런타임 시점의 의존관계가 드러나지 않는다. 즉 인터페이스에 의존하고 있어야 합니다.
- 런타임 시점의 의존관계는 컨테이너나 팩토리 같은 제3의 존재가 결정합니다.
- 의존관계는 사용할 오브젝트에 대한 레퍼런스를 외부에서 제공해줌으로써 만들어집니다.
생성자를 통한 주입, 수정자를 통한 주입, 일반 메서드를 통한 주입이 있습니다.
Application Context
Bean Factory를 확장한 IoC 컨테이너입니다.
Bean Factory로 부를 때는 빈의 생성과 제어의 관점에서 이야기한 것이고
Application Context로 부를 때는 스프링이 제공하는 애플리케이션 지원 기능을 모두 포함해서 이야기하는 것 입니다.
DL (Dependency Lookup)
Application Context를 이용해 직접 Bean을 검색해 주입하는 방법
의존관계 검색 방법은 코드 안에 오브젝트 팩토리 클래스나 스프링 API가 나타납니다.
컨테이너와 같은 다른 성격의 오브젝트에 의존하게 되는 것이므로 바람직하지 않습니다.
대개는 DI를 사용하는 편이 낫습니다.
반응형
'백엔드 > Spring' 카테고리의 다른 글
자기호출 Self Invocation (0) | 2024.05.25 |
---|---|
@Transactional propagation (0) | 2024.04.21 |
Spring DB Transaction에서의 UncheckedException, CheckedException (2) | 2022.08.16 |
Spring 필드 주입보다 생성자 주입을 써야 하는 이유 (0) | 2022.05.23 |