반응형
SMALL
Spring IoC(제어의 역전) 컨테이너는 스프링 프레임워크의 핵심 구성 요소로, 애플리케이션의 객체 생성, 초기화, 설정 및 생명주기를 관리합니다. IoC(Inversion of Control)는 애플리케이션의 각 구성 요소의 생성과 의존성을 코드 내부에서 직접 관리하지 않고, 컨테이너가 대신 관리하게 하는 디자인 원칙입니다. Spring IoC 컨테이너는 이 원칙을 따르며, 주로 ApplicationContext 인터페이스를 통해 구현됩니다.
Spring IoC 컨테이너의 주요 역할
- 객체 관리: 애플리케이션에서 사용할 객체(빈, Bean)를 생성하고 관리합니다. 객체의 생명주기를 담당하며, 생성 시점과 소멸 시점을 제어합니다.
- 의존성 주입(DI): 객체가 필요로 하는 의존성을 외부에서 주입하여 결합도를 낮춥니다. 이를 통해 코드의 유연성과 재사용성을 높이고, 테스트 용이성을 증가시킵니다.
- 설정 및 구성 관리: 객체의 설정과 구성을 XML 파일, 애너테이션, 또는 Java Config 클래스를 통해 설정할 수 있습니다.
- 컨텍스트 제공: 애플리케이션에서 동일한 컨텍스트를 공유할 수 있도록 지원하며, 이 컨텍스트에서 빈을 검색하고 사용할 수 있습니다.
주요 IoC 컨테이너 인터페이스
- BeanFactory: 가장 기본적인 IoC 컨테이너로, 객체의 생성과 의존성 주입을 제공합니다. 필요할 때 객체를 생성하는 Lazy Initialization 방식을 사용하므로 메모리 효율적입니다.
- ApplicationContext: BeanFactory를 확장한 인터페이스로, 보다 많은 기능을 제공하는 상위 개념의 IoC 컨테이너입니다. 애플리케이션 이벤트, 메시지 리소스 처리, 국제화 기능 등을 추가로 제공합니다.
Spring IoC 컨테이너 동작 방식
- 객체 설정 파일 로드: XML, 애너테이션, Java Config 등의 설정을 읽어들입니다.
- 객체 생성: 설정에 따라 객체를 생성하고, 필요에 따라 빈 초기화 메서드를 호출합니다.
- 의존성 주입: 각 객체에 필요한 의존성을 주입하여 서로 연결합니다.
- 컨테이너 제공: 생성된 객체(빈)를 애플리케이션에서 사용할 수 있도록 제공합니다.
예시
XML 설정 예시:
<beans>
<bean id="myBean" class="com.example.MyClass">
<property name="propertyName" value="value" />
</bean>
</beans>
Java Config 예시:
@Configuration
public class AppConfig {
@Bean
public MyClass myBean() {
return new MyClass();
}
}
반응형
LIST
'cs정리' 카테고리의 다른 글
스프링 빈 주입시 생기는 문제들 (0) | 2024.11.09 |
---|---|
SPRING BEAN이란 (0) | 2024.11.09 |
ORM 구현체- HIBERNATE, MYBATIS (2) | 2024.10.30 |
SPRING BOOT ORM이란? (0) | 2024.10.30 |
SPRING BOOT JPA란? (0) | 2024.10.30 |