728x90
Dependency Injection, 의존성 주입
- Dependenct Injection, 의존성 주입은 IoC(Inversion of Control, 제어의 역전)의 특화된 형태입니다.
- DI를 사용한다면 오브젝트들은 자신들의 의존성(함께 작업을 처리하는 다른 오브젝트들)을 오직 생성자 인수, 팩터리 메서드에 대한 인수, 혹은 객체가 생성되거나 팩토리 메서드에서 반환된 후에 객체 인스턴스에 설정된 속성을 통해서만 의존성을 정의합니다.
- IoC 컨테이너는 빈을 생성하며 해당 빈에 정의된 의존성을 바탕으로 필요한 의존성을 주입해줍니다.
BeanFactory, ApplicationContext
- org.springframework.beans 패키지와 org.springframework.context 패키지는 스프링 IoC 컨테이너의 근간이라 할 수 있습니다.
- BeanFactory 인터페이스는 어떤 유형의 객체라도 관리할 수 있는 고급 구성 메커니즘을 제공합니다.
- ApplicationContext는 BeanFactory의 하위 인터페이스로써 다음과 같은 추가적인 기능을 제공합니다.
- 스프링 AOP와의 더 쉬운 통합
- 메시지 리소스 처리(국제화에 사용)
- 이벤트 발행
- 웹 애플리케이션에서 사용하기 위한 WebApplicationContext와 같은 application-layer 특화 컨텍스트 추가
- 요약하자면, BeanFactory는 기본 기능과 configuration 프레임워크를 제공하고, ApplicationContext는 거기에 좀더 enterprise-specific한 기능들이 추가 된 것입니다.
Beans
- 스프링에서는 애플리케이션의 중추를 이루고 스프링 IoC 컨테이너를 통해 관리되는 객체(Objects)를 Beans 라고 부릅니다.
- Bean은 스프링 IoC를 통해 인스턴스화되고, 조립되며, 관리되는 객체들입니다.
- 그게 아니라면 빈은 그저 애플리케이션에 있는 수많은 객체들 중 하나일 뿐입니다.
- Bean 사이의 의존성은 컨테이너에서 사용하는 Configuration metadata(구성 메타데이터)에 설정됩니다.
출처 : https://docs.spring.io/spring-framework/reference/core/beans/introduction.html
728x90
'Spring' 카테고리의 다른 글
Bean Overview - 스프링 공식문서가 말하는 빈 (0) | 2024.01.22 |
---|---|
Container Overview - 스프링 공식문서가 말하는 컨테이너 (0) | 2024.01.22 |
Spring Security - @PreAuthorize, @PostAuthorize (0) | 2024.01.16 |
토비의 스프링 부트 (0) | 2023.11.28 |
토비의 스프링 5일차 (0) | 2023.07.26 |