공부/스프링프레임워크

[spring] DI, DL

ghhong 2021. 11. 11. 09:52

 

DI : 클래스간의 의존관계를 빈 설정(Bean Definition)정보(xml, 어노테이션)를 바탕으로 컨테이너가 자동으로 연결해주는 것.

=> 개발자는 빈 설정파일에 의존관계가 필요하다는 정보를 추가

=> 객체 레퍼런스를 컨테이너로부터 주입받아서 실행시에 동적으로 의존관계가 생성

è 장점 : 코드가 단순해진다, 컴포넌트간의 결합도가 제거된다.

 

DI의 유형

1.     Setter Injection : setter메서드를 이용한 의존성 삽입

2.     Constructor Injection : 생성자를 이용한 의존성 삽입

3.     Method Injection : 일반 메서드를 이용한 의존성 삽입

 

스프링 DI컨테이너의 개념

Spring DI container가 관리하는 객체를 빈(Bean)이라고 하고, 이 빈들을 관리한다는 의미로 컨테이너를 빈 팩토리라고 부른다. 빈 팩토리에 여러가지 컨테이너 기능을 추가하여 애플리케이션 컨텍스트(ApplicationContext)라고 부른다.

BeanFactory : 빈을 등록, 생성, 조회, 반환 관리함. 보통은 빈팩토리를 바로 사용하지 않고, 이를 확장한 ApplicationContext를 사용한다. getBean()메서드가 정의되어있다.

 

ApplicationContext : 빈을 등록, 생성, 조회, 반환 관리하는 기능은 빈팩토리와 같다. Spring의 각종 부가 서비스를 추가로 제공한다.