250x250
Notice
Recent Posts
Recent Comments
Link
코린이의 기술 블로그
DI(Dependency Injection) 본문
DI(Dependency Injection)
의존성 주입으로 스프링 컨테이너가 지원하는 핵심개념
웹 애플리케션에서 구성 요소간의 종속성을 소스 코드에서 설정하지 않고, 외부의 설정 파일 등을 통해 주입하도록 하는 설계 패턴 입니다.
스프링 의존성 관리 방법
스프링은 IoC(제어의 역행)를 두가지 형태로 지원합니다.
- Dependency Lookup
- Dependency Injection 주입을 주로 사용
Dependency Injection : ex. Circle c=new Circle(); 객체를 생성하기 위해 사용
- Setter Injection (세터 인젝션) : setter 메서드로 클래스 사이의 의존관계 설정
- Constructor Injection (생성자 인젝션) : 생성자를 통해 의존관계 설정
기존의 클래스에서 xml(텍스트이기 때문에 변경이 쉬움)로 이동
(1)생성자 기반의 DI
usebean의 방식과 비슷합니다.
- index : Constructor의 몇번째 인수의 값 전달
- type : Constructor의 어느 데이터형의 인수에 값을 전달
- ref : 자식요소 <ref bean="bean의 명"/>대신 사용
- value : 자식요소 <value></value> 사용가능
(2)Setter 기반의 DI
인수가 없는 static 팩토리 메서드 호출 후 빈의 setter를 호출하여 틀래스간의 의존관계 설정
<property name="필드명" value="값" />
- 이너빈(inner Bean)
- 부모 빈 참조 : 상속개념
- 컬렉션(Collection) : ArrayList, Map, Set, Properties
태그 | 타입 | 설명 |
<list> | java.util.List, 배열 | 배열의 값 목록 전달 |
<map> | java.util.Map | <키, 값> 목록 전달 |
<set> | java.util.Set | 값 목록 전달 |
<props> | java.util.Properties | <프로퍼티이름,프로퍼티 값> 목록 전달 |
(3)XML 네임스페이스
XML 네임스페이스는 <property> 대신 간단하게 설정하는 방법입니다.
728x90
'Java Web' 카테고리의 다른 글
스프링 어노테이션 (0) | 2021.11.11 |
---|---|
의존 관계 / 생성자 인젝션 / Setter 인젝션 (0) | 2021.11.10 |
스프링 컨테이너 (0) | 2021.11.08 |
IoC(Inversion of Control) 컨테이너 (0) | 2021.11.07 |
스프링 프레임워크의 특징 (0) | 2021.11.06 |
Comments