본문 바로가기

Spring/Spring Boot

의존성 주입 DI(Dependency Injection) 이해 시켜줘 제발

반응형

DI 란?

DI는 클래스 사이의 의존 관계를 Bean Configuration 정보를 통해서 컨테이너가 자동으로 연결해주는 것이다.

개발을 하면서 개발자가 제어를 담당할 필요가 없이 Bean의 설정 파일을 보고 의존관계가 필요하다는 정보를 추가해주기만 하면 된다. 그러면 오브젝트 레퍼런스를 외부(Container)로 부터 주입을 받아서, 실행 시에 동적으로 의존 관계가 생성된다. 결국 컨테이너가 흐름의 주체가 되어서 애플리케이션 코드에 의존 관계를 주입해주는 것이다.

1
2
3
4
5
6
7
public class Foo{  
    private Bar bar;
 
    public Foo() {
        bar = new SubBar();
    }
}
cs


위와 같이 Foo 객체는 bar를 인스턴스화 할 수 있다. Bar 인터페이스를 구현하는 구체적인 클래스의 이름을 애플리케이션 코드에서 등장시켜서 초기화를 시키는 것을 알 수 있다.

이 경우 Bar 인터페이스를 구현하는 구체적인 클래스의 이름이 애플리케이션 코드에 등장하지 않아서 동적으로 구현 클래스를 정해줄 수 있습니다.

 

@Autowired

 

 

 

반응형