본문 바로가기
Spring|Spring-boot

[Spring] DI(Dependency Injection)

by oncerun 2020. 6. 15.
반응형

Dependency Injection 의존성 주입 무슨 말인지 바로 알 수가 없습니다.

간단히 부품 조립이라고 생각을 해보겠습니다.

 

Composition has a
일체형관계
class A
{
	private B b; //여기서 b는 Dependency 

	public A(){
			b = new B();
		}
}


Association has a
외부에 생성해 사용하는방식 조립형
class A
{
	private B b;

	public A(){
			
		}
        
     public void setB(B b){
     	this.b = b;
     }
}

 

일반적으로 프로그램을 만들 때 부품을 느슨한 결합으로 만드는 경우가 많습니다.

 

Association has a 방식은 A라는 기계가 있는데 B라는 부품을 생성해 장착해주어야 기능이 돌아간다고 합니다.

여기서 부품인 B를 Dependency 라고 하며 B를 장착하는 과정을

a.setB(b);

Dependency Injection이라고 합니다.

 

 

Setter Injection

B b = new B();
A a = new A();
a.setB(b);

 

Construction Injection

B b = new B();
A a = new A(b);

 

부품을 쉽게 바꿀 수 있다는 장점과  단점은 부품을 조립해야 하는 불편함이 존재합니다.

 

그러한 불편함을 스프링에서 해결해줍니다. 우리가 생성할 객체와 조립할 객체만 지정해준다면 스프링에서 알아서 부품을 조립해주는 것이죠.  이런 것을 DI 종속성 주입이라고 합니다.

 

 

반응형

'Spring|Spring-boot' 카테고리의 다른 글

[spring] @Configuration  (0) 2020.06.17
[Spring] Dependency Injection (xml)  (0) 2020.06.16
[Spring] IoC 컨테이너  (0) 2020.06.15
[Spring] 느슨한 결합력과 인터페이스  (0) 2020.06.15
[Spring] 소개  (0) 2020.06.15

댓글