본문 바로가기

Spring

Spring(2) - DI(의존성 주입)이란?

스프링 프레임워크의 핵심기능 중 하나인 DI(Dependency Injection)에 대해서 알아보려고 한다.

간단하게 의존에대해서 설명하자면

한 A클래스 내에서 B클래스의 객체를 생성해서 사용한다고하면 A클래스는 B클래스에 의존하고 있다고 설명할 수 있다.

의존을 설정하는 방식에는 의존객체를 직접 설정, DI코드를 이용한 외부에의한 의존설정 방식이 있다.

1. 생성자 방식으로 의존 설정 예시

private Enter enter = new Enter(); 

이렇게 작성할 시 단점으로 Enter 클래스를 상속이나 구현받은 하위 클래스를 사용해야 할 때

private Enter enter = new subEnter();

이런식으로 코드를 변경해주어야 한다는 단점이있다.

2. DI 방식으로 의존 설정 

DI방식으로 의존을 외부설정 할 경우 구현되지 않은 메서드에대해서 가짜 메서드를 구현해

테스트 할 수 있게 해준다. 즉 개발 효율이 향상된다.

DI방식 내에는 생성자 생성방식과 프로퍼티 생성방식 두가지가 있는데 주로 프로퍼티 생성방식을 많이 사용한다.


DI를 XML로 설정하기 위한 기본 골격은 다음과 같다.

<bean id = "빈이름" class = "완전한 클래스이름">
	<property name = "프로퍼티 이름" value = "프로퍼티 값"/>
	<property name = "프로퍼티 이름" ref = "다른 빈 식별자"/>
<bean/>
<bean id = "빈 식별자1" class = "완전한 클래스 이름">
	<constructor-arg><value>인자값</value></constructor-arg>
   	<constructor-arg ref = "다른 빈 식별자"/>
</bean>

위와 같은 방식으로 설정을 하면된다.