본문 바로가기
WEB/Java

Spring Framework : DI

by 노랑파랑 2017. 1. 3.
반응형





DI (Dependency Injection)

▷프로그래밍에서 구성 요소간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일을 통해 정의되게 하는 디자인 패턴

▷Spring에서는 이러한 의존성 관계가 있을 때 프레임워크가 작업을 처리해줌.

 위와 같을 때 (Class A가 ServiceA와 ServiceB에 종속) ClassA에 대한 독립적 테스트가 어렵고, 종속성의 변경이 있을 때 ClassA의 소스 코드를 변경해야 한다. 또한 ClassA에는 종속 관계를 정의, 지정 및 관리하기 위한 반복적인 코드가 들어가게 되는 문제점 들이 생긴다. 

 이러한 문제를 해결하기 위해서 Class 내에서 종속성을 인스턴스화 하지 않고, 종속성의 유효한 인스턴스를 얻게 위해 객체의 생성 및 초기화를 빌더 객체를 통해서 한다. 

 





유형

세터 주입 : 의존성을 입력받는 세터(Setter)메소드를 생성하고 이를 통해 의종성 주입

// 1

public void setService(Service service){

this.service = service;

}

// 2

One o1 = new One();

Two t1 = new Two();

t1.setOne(o1);

생성자 주입 : 필요한 의종성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해 의존성을 주입

// 1

Cilent (Service service){

this.service = service;

}

// 2

One o1 - new One();

Two t1 = new Two(o1);

인터페이스 주입 : 의존성을 주입하는 함수를 포함하고 있는 인터페이스를 작성하고 이 인터페이스를 구현하도록 함으로써 실행시 이를 통해서 의존성 주입






 



반응형

'WEB > Java' 카테고리의 다른 글

StringEscapeUtils  (1) 2023.02.23
Scanner, BufferedReader  (0) 2017.01.31
Spring Framework : 개념  (0) 2017.01.03
String  (0) 2017.01.03
제네릭  (0) 2017.01.03