05강 DI에 대해
- 목차
- 내용
- DI 개념
- 스프링 컨테이너의 이해와 사용
- 학습 목표
- 스프링 DI 개념을 이해하고 예시까지!
- 스프링 컨테이너의 역할과 동작 방식을 이해.
- 내용
- DI(Dependency Injection)의 개념
- 간단하게 말하면, 객체 생성(new @@@())를 안하고 context 에, 컨테이너에 있는 객체를 injection 해줘서 사용하게 해줌.
- 각 클래스 간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해 주는 것을 말함!
- 개발자들은 단지 빈 설정파일에서 의존관계가 필요하다는 정보를 추가하면 됨.
- 객체 레퍼런스를 컨테이너로부터 주입 받아서, 실행 시에 동적으로 의존관계가 생성됨.
- 컨테이너가 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해주는 것.
- 장점
- 코드가 단순해집니다.
- 컴포넌트 간의 결합도가 제거됩니다.
- DI의 유형
- Setter Injection - Setter 메소드를 이용한 의존성 삽입
- 의존성을 입력 받는 setter 메소드를 만들고 이를 통해 의존성을 주입합니다.
- Constructor Injection - 생성자를 이용한 의존성 삽입
- 필요한 의존성을 포함하는 클래스의 생성자를 만들고
이를 통해 의존성을 주입합니다.
- 필요한 의존성을 포함하는 클래스의 생성자를 만들고
- Method Injection - 일반 메소드를 이용한 의존성 삽입
- 의존성을 입력 받는 메소드를 만들고 이를 통해 의존성을 주입합니다.
- Setter Injection - Setter 메소드를 이용한 의존성 삽입
- Spring DI 컨테이너의 개념
- Spring DI 컨테이너가 관리하는 객체를 빈(bean)이라고 하고, 이 빈(bean)들을 관리한단 의미로
컨테이너를 빈 팩토리(Bean Factory)라고 부릅니다.
Bean Factory 또는 Application Context 라고 부름!!!
- Spring DI 컨테이너가 관리하는 객체를 빈(bean)이라고 하고, 이 빈(bean)들을 관리한단 의미로
- Bean Factory 와 Application Context
- Bean Factory
- Bean을 등록, 생성, 조회, 반환을 관리함.
- 보통은 Bean Factory를 바로 사용하지 않고,
이를 확장한 Application Context를 사용함. - getBean() 메소드가 정의되어 있음!
- Application Context
- Bean을 등록 생성, 조회, 반환 관리하는 기능은 Bean Factory와 같음.
- Spring의 각종 부가 서비스를 추가로 제공함.
- Spring이 제공하는 Application Context 구현 클래스가 여러가지 있음.
- Bean Factory
- 실습!
- Service 클래스를 만들어 DAO를 참조.
- Dependency Injection을 통한 참조.
- Setter를 이용한 Injection
- Constructor를 통한 Injection
'Room 102. Back-end > Spring' 카테고리의 다른 글
[실전 개발자를 위한 Spring Framework ] 강의 - MVC 패턴 (0) | 2020.05.28 |
---|---|
[실전 개발자를 위한 Spring Framework ] 강의 - 계층 구조 (0) | 2020.05.25 |
[실전 개발자를 위한 Spring Framework ] 강의 - IoC (0) | 2020.05.24 |
[실전 개발자를 위한 Spring Framework ] 강의 - Maven (0) | 2020.05.19 |
[실전 개발자를 위한 Spring Framework ] 강의 - Spring (0) | 2020.05.14 |